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

3 篇文章 0 订阅

常用基本库函数:

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值