文章目录[隐藏]
stm32cubemx+HAL+串口接收中断
在cubemx配置完串口和global interrupt后需要在keil中添加如下代码。
第一步:在main函数中添加接收中断标志位开启函数
HAL_UART_Receive_IT(&huart1,aRxBuffer,1);
接收到的数据储存在aRxBuffer数组中
第二步:在stm32h7xx.c 文件串口中断函数中处理数据
先定义接收数组变量
uint8_t aRxBuffer[1];
然后再在中断函数中进行数据处理
/* USER CODE BEGIN USART1_IRQn 0 */
uint32_t temp;
temp=aRxBuffer[0];
FRAME_ReceiveCall(temp,MYUSART1);
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);
/* USER CODE BEGIN USART1_IRQn 1 */
HAL_UART_Receive_IT(&huart1,aRxBuffer,1);
/* USER CODE END USART1_IRQn 1 */
}
其中FRAME_ReceiveCall(temp,MYUSART1);函数是对帧头、帧尾、属性等的处理。其中需要注意的是在中断中要再次开启接收中断标志位以准备下次的数据接收。
版权声明:本文为CSDN博主「MyKing欲冲」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangyucong2000/article/details/120985304
暂无评论