STM32F407VET6学习笔记8:UART5串口接收中断的Cubemx配置
之前的工程对串口的配置没有完善串口接受中断,这里补充配置UART5串口接收中断,实现串口回送功能
之前的文章:
STM32F407VET6学习笔记5:STM32CubeMX配置串口工程_HAL库-CSDN博客
目录
中断配置·:
中断服务函数:
变量定义:
初始化:
回调函数:
测试效果:
参考文章:
中断配置·:
开启中断
中断服务函数:
HAL 库一共提供了 5 个中断处理回调函数:
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);//发送完成回调函数 void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart);//发送完成过半 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);//接收完成回调函数 void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart);//接收完成过半 void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart);//错误处理回调函数
变量定义:
uint8_t uart_recv[], recv_data[]; uint8_t u5_recv_len, u5_recv_data, recv_len;
初始化:
MX_UART5_Init(); HAL_UART_MspInit(&huart5); HAL_UART_Receive_IT(&huart5, &u5_recv_data, 1);
回调函数:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {if(huart->Instance==UART5){uart_recv[u5_recv_len++] = u5_recv_data;if(u5_recv_len>200){u5_recv_len=0;}HAL_UART_Receive_IT(&huart5, &u5_recv_data, 1);tick = HAL_GetTick();} }
测试效果:
能正常收发了
参考文章:
STM32CubeMX学习笔记2——串口_cubemx配置串口-CSDN博客