项目上遇到这个问题查了很多論坛和文章,得到解决办法分享一下
串口 错误的时候,读取huart->ErrorCode 这个值如果不为0,说明串口有误需要重新初始化串口
重新初始化串口方法(以串口4为例):
值得注意的是,重新初始化之后必须延时一下,给串口一定的恢复时间(实测得出的结论)这段时间就不要给串ロ发数据了,否则串口仍然处于异常状态无法接受数据!
项目上遇到这个问题查了很多論坛和文章,得到解决办法分享一下
串口 错误的时候,读取huart->ErrorCode 这个值如果不为0,说明串口有误需要重新初始化串口
重新初始化串口方法(以串口4为例):
值得注意的是,重新初始化之后必须延时一下,给串口一定的恢复时间(实测得出的结论)这段时间就不要给串ロ发数据了,否则串口仍然处于异常状态无法接受数据!
本项目代码利用HAL库中DMA的中断方式向串口1发送大量数据,芯片为STM32F407通过串口助手来接收并显示数据。具体步骤如下:
1、配置MCU的引脚功能
2、初始化DMA功能。
4、初始化TIM14使用PWM功能。
5、当按下KEY1键时开始发送字符串:"爱丽是一个喜欢咬自己尾巴的小笨狗",同时LED灯开始闪烁串口助手接收数据。
6、传输完毕后灯咣停止闪烁。
7、步骤5、 6 可以重复
PF10控制LED灯,作为电源灯使用
PF9引脚复用为PWM功能,当数据输出时实现LED闪烁功能。
使用串口1的异步功能具體参数见上图。
使用串口1的中断方式进行发送此项目中未使用接收功能。
在本项目中使用了串口1的发送功能所以必须使用DMA2。
下面的代碼只展示需要进行编辑的部分STM32CubeMX自动生成的就不贴出来了。
在USART.C文件中定义了一个字符数组和一个发送的腾讯缓存视频显示损坏怎么办区
将字符串"爱丽是一个喜欢咬自己尾巴的小笨狗"重复填入发送腾讯缓存视频显示损坏怎么办区直到将腾讯缓存视频显示损坏怎么办区填满为止。
咑开串口助手设置好波特率115200,停止位1位数据位8位,无奇偶效验然后按键KEY1键。
*huart)执行回调函数中的代码。当再次按下KEY1键时重复执行WHILE循环中的代码。