单片机
返回首页

stm32中一些常用基本库函数以及串口配置步骤

2018-12-28 来源:eefocus

常用基本库函数:


void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)//使能端口时钟

 

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)//初始化端口,选择端口号,设定参数

typedef struct

{

  uint16_t GPIO_Pin;             //引脚号

                                     

  GPIOSpeed_TypeDef GPIO_Speed;  //速度

 

  GPIOMode_TypeDef GPIO_Mode;    //输出模式

                                     

}GPIO_InitTypeDef;

 

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)//设置端口中某引脚高电平

 

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)//设置端口中某引脚低电平

 

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)//读取输入电平

串口配置的一般步骤:


//需要分别设置传输和接收端口

 

//①时钟使能 

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);

//②串口复位 

void USART_DeInit(USART_TypeDef* USARTx);

//③端口模式设置 

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

//USARTx_TX模式设置为复用推挽GPIO Mode_AF_PP;USARTx_RX模式设置为浮空或上拉输入GPIO Mode_IN_FLOATING;

//④串口参数初始化 

void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);

//⑤开启中断并初始化NVIC 

void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);

typedef struct

{

  uint8_t NVIC_IRQChannel;   //IRQ通道                 

 

  uint8_t NVIC_IRQChannelPreemptionPriority;  //抢占优先级

 

  uint8_t NVIC_IRQChannelSubPriority;      //子优先级

 

  FunctionalState NVIC_IRQChannelCmd;   //通道使能     

} NVIC_InitTypeDef;

void USART_ITConfig(USART_TypeDef* USARTx, uint16_t USART_IT, FunctionalState NewState);

//⑥使能串口

void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState);

//⑦编写中断处理函数

USARTx_IRQHandler();

//⑧串口数据收发

void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);

uint16_t USART_ReceiveData(USART_TypeDef* USARTx);

typedef struct

{

  uint32_t USART_BaudRate;       //波特率    

 

  uint16_t USART_WordLength;     //字长     

 

  uint16_t USART_StopBits;        //停止位   

 

  uint16_t USART_Parity;          //奇偶校验    

 

  uint16_t USART_Mode;              //发送/接收使能

 

  uint16_t USART_HardwareFlowControl; //硬件流控制

} USART_InitTypeDef;

//⑨串口状态获取

FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);

void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

最新器件
精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 非常简单的150W功放电路图

  • 一个简单的警笛电路图

  • 优化电路板布局的简单方法

  • 分享一个电网倾角计电路

  • 电谐波图形均衡器示意图

    相关电子头条文章