关于STM32 UART4串口通信出现的N个问题的解决
创始人
2024-11-21 02:07:28
0

1.CubeMX生成的代码工程结构是比较合理的,但需要注意HAL库代码中初始化函数的调用顺序。

以串口初始化为例,勾选生成.c/.h文件后,CubeMX会把所有的串口外设放在usart.c中进行初始化,不同的串口间,使用不同的MX_U(S)ARTx_Init对串口外设进行配置,共用弱定义HAL_UART_MspInit进行引脚和中断的底层配置。

调用关系是,MX_UART4_Init-->HAL_RS485Ex_Init-->HAL_UART_MspInit,相当于底层配置和开启中断的操作是在外设初始化进行了一半时开始的。若需要自己实现每个串口一个私有的MspInit,那么初始化的顺序应该是,要把中断的配置和使能,放在最后的部分。

下面只有第一个函数正确。

/*正确的操作:先配置底层IO,再配置外设,最后配置中断*/ void BSP_RS232_Init(void) { 	MX_RS232_MspInit(); 	MX_UART4_Init();      /* UART4 interrupt Init */     HAL_NVIC_SetPriority(UART4_IRQn, 0, 0);     HAL_NVIC_EnableIRQ(UART4_IRQn);  	__HAL_UART_ENABLE_IT(&huart4,UART_IT_RXNE);//接收中断 }   /*错误的操作1:*/ void BSP_RS232_Init(void) { 	MX_RS232_MspInit();//在此开启了中断 	MX_UART4_Init(); }  /*错误的操作2:*/ void BSP_RS232_Init(void) { 	MX_UART4_Init(); 	MX_RS232_MspInit();//在此开启了中断 }

 2.串口RXNE中断里一定不要打印(400M主频,波特率4800时打印才不会影响通信),不然就ORE溢出了,触发ORE中断后也要处理

/**  * 串口4中断服务函数  */ void UART4_IRQHandler(void) {     if(__HAL_UART_GET_FLAG(&huart4,UART_FLAG_RXNE)!=RESET)//接收到数据     {     	RS232_Receive(UART4->RDR);     }     else     {         __HAL_UART_CLEAR_IT(&huart4, UART_CLEAR_OREF);     } }

3.若串口中断里进行上传OS队列等OS相关操作,一定要将串口中断优先级降至可受OS管理的级别,不然会出现不上传队列、丢包的现象

void BSP_RS232_Init(void) { 	MX_RS232_MspInit(); 	MX_UART4_Init();    __HAL_UART_ENABLE_IT(&huart4,UART_IT_RXNE);//接收中断    /* UART4 interrupt Init */   HAL_NVIC_SetPriority(UART4_IRQn, 0x05, 0);//因为会在中断中调用OS相关API,优先级不能高于OS管理的范围   HAL_NVIC_EnableIRQ(UART4_IRQn); } 

相关内容

热门资讯

黑科技辅助!wpk辅助神器(透... 黑科技辅助!wpk辅助神器(透视)软件透明辅助挂(本来是真的有挂)-哔哩哔哩是一款可以让一直输的玩家...
5分钟了解“创思维正版辅助器下... 5分钟了解“创思维正版辅助器下载”详细透视开挂辅助安装-哔哩哔哩;一、创思维正版辅助器下载有挂的是的...
两分钟科普!wpk真吗,哈糖大... 两分钟科普!wpk真吗,哈糖大菠萝可以开挂吗,曝光教程(发现有挂)-哔哩哔哩哈糖大菠萝可以开挂吗辅助...
第一分钟了解(昆仑大厅)外挂辅... 第一分钟了解(昆仑大厅)外挂辅助插件(透视)详细教程(2022已更新)(哔哩哔哩);亲真的是有正版授...
黑科技辅助!wpk俱乐部长期盈... 黑科技辅助!wpk俱乐部长期盈利打法(透视)软件透明挂黑科技(切实存在有挂)-哔哩哔哩;1、让任何用...
第6分钟了解“功夫川嘛辅助器”... 第6分钟了解“功夫川嘛辅助器”详细透视开挂辅助器-哔哩哔哩;人气非常高,ai更新快且高清可以动的一个...
第五分钟辅助!xpoker辅助... 第五分钟辅助!xpoker辅助,德州透视插件,攻略教程(有挂方法)-哔哩哔哩德州透视插件辅助器中分为...
两分钟了解(皮皮跑胡子)外挂透... 两分钟了解(皮皮跑胡子)外挂透明挂辅助工具(辅助挂)透明挂教程(2020已更新)(哔哩哔哩);皮皮跑...
黑科技辅助!微扑克可以加入俱乐... 您好,微扑克可以加入俱乐部这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
8分钟了解“掌中乐游戏中心辅助... 8分钟了解“掌中乐游戏中心辅助器”详细透视开挂辅助脚本-哔哩哔哩;1、这是跨平台的掌中乐游戏中心辅助...