一,HAL库 UART异步通信配置步骤
1.配置串口初始化
HAL_UART_Init()函数
此函数在STM32F1xx_hal_uart.c中
此函数返回值为一个枚举变量,我们跳过去看一下
枚举变量为上面四个值,作为返回值
函数句柄的结构体如上,进行配置
初始化主要看前面两个参数
第一个参数是配置寄存器的基地址
第二个参数是UART的通讯参数
主要就是配置前面几个参数,参数的配置都有宏定义,在mdk中去跳转查询即可
2.串口底层初始化
HAL_UART_MASPInit() 用来配置GPIO,CLOCK时钟信号,NVIC中断
3.开启串口异步通信中断
HAL_UART_Receive_IT()
此函数类似于HAL_UART_Init()函数,位于STM32F1xx_hal_uart.c中
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
此函数的作用:以中断的方式接收指定字节的数据
形参一:是UART_HandleTypeDef结构体指针类型变量
形参二:是指向接收数据缓存区
形参三:是要接收的数据大小,以字节为单位
4.设置优先级,使能中断
HAL_NVIC_SetPriority(),HAL_NVIC_EnableIRQ()
5.编写中断服务函数
USARTx_IRQHandler()
6.串口数据发送
HAL_UART_Transmit()
此函数是正常UART通信,此函数类似于HAL_UART_Init()函数,位于STM32F1xx_hal_uart.c中
原型;HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
此函数的作用:以阻塞的方式发送指定字节的数据
参数一:结构体句柄
参数二:指定要发送的数据地址
参数三:要发送的数据大小,以字节为单位
参数四:设置超时时间,以ms为单位
学习笔记;不妥之处请多多指正