STM32F407 USART发送数据问题

所属分类:STM32F系列 浏览数:733 提问者:kiravsl 提问时间:2017-10-11

问:

初学STM32,买的STM32F407VET6 开发板,运行买开发板时配套给的RS232通讯测试实验例程时,实验例程主要功能是给开发板发送一串符合一定格式的字符串,然后原封不动返回这个字符串。发现通过串口给开发板发送指定格式的数据后,开发板总是会先回复一串乱码,然后回复正常字符串数据,通过打断点调试,先回复的一串乱码在用户代码发送数据之前发的,尝试了在用户代码发送之前禁用发送器(CR1中TE位置0),收到指定格式数据时再打开发送器,结果还是同样的现象。有两个问题: 1、一开始的一串乱码怎么发出来的,为什么禁用了发送器还能发出数据? 2、收到指定格式数据后,开发板发送原样数据回去的时候为什么要先延时一段时间才能正确收到开发板返回的数据,不然就是乱码,两端波特率设置之类的是一致的


答:1、一开始的一串乱码怎么发出来的,为什么禁用了发送器还能发出数据? 答:有可能是硬件干扰引起的乱码 2、收到指定格式数据后,开发板发送原样数据回去的时候为什么要先延时一段时间才能正确收到开发板返回的数据,不然就是乱码,两端波特率设置之类的是一致的 答:是因为串口是一个一个字节发送,需要程序判定前面一个字节发完了,再发下一个字节,不然就会乱码。
回答者:贺工 回答时间:2017-10-11

答:如果问题还没有解决请关注微信公众号“单片机STM32”,很高兴为你解答
回答者:贺工 回答时间:2017-10-11

答:你可以这样验证下硬件线路问题,TX/RX直接互联,看看有无这个问题。 关于第二个问题主要跟你的代码有关,看看代码是怎么处理的,处理速度 怎么样。
回答者:xmshao 回答时间:2017-10-12

登录后回答。
图书推荐
STM32 HAL库开发实战指南

STM32 HAL库开发实战指南

基于野火挑战者F7开发板和HAL库,全书共980页,全书由浅入深,步步为营,有广度也有深度。
Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC

Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC

Using FreeRTOS and libopencm3 instead of the Arduino software environment, ...
Programming With STM32 : Getting Started With the Nucleo Board

Programming With STM32 : Getting Started With the Nucleo Board

Get up and running programming the STM32 line using the hands-on information ...
广告