新手求助
我STM32串口为不占cpu资源使用DMA方式进行接收,设定接收缓冲区,在while(1)中查询已接收到的数据并进行处理,可是使用串口调试工具发送数据到板子,板子再将数据通过窗口打印处理,打印的数据和发送的数据出现不一致情况,求大侠帮忙看看!谢谢大家额。。。。帮顶 串口数据接收处理时有没有进行校验! 看一下串口设置是否一样,波特率,数据位,校验位等是否一致,还有显示方式和发送方式是否一致 用仿真器直接观察缓冲区,这才是根。
发出来就多了道手续。
一步一步查,就是把几个过程分开,保证前面的结果正确,再查下一步。一步一步,就是这意思。
晓枫VS枯叶 发表于 2015-1-10 09:17
串口数据接收处理时有没有进行校验!
通过j-link在线仿真调试,发现打印出来的数据和缓冲区的数据一致,可是这个数据和我发送的是有区别的,比如我发送
ff fe fe f0 e0
可是缓冲区的数据变成了
ff fe 20 f0 f0
这样的的数据,难道DMA搬运数据出问题?可是我的配置和网上的例程基本差不多的。如果DMA搬运数据出问题,可是第一个字节ff总是不会出错,这是为啥? 黄小狼 发表于 2015-1-10 09:56
看一下串口设置是否一样,波特率,数据位,校验位等是否一致,还有显示方式和发送方式是否一致 ...
这个检查过好几次,没有什么问题的 晓枫VS枯叶 发表于 2015-1-10 09:17
串口数据接收处理时有没有进行校验!
有校验。有木有可能是硬件问题,因为断电一段时候在上电是发送正常,长时间运行一下,又可能出现这样的问题?? 用DMA接收数据时要注意一帧数据接收完,或者一帧数据和设定的DMA缓冲区不一样长时候的处理方法。
用DMA接收数据时要注意一帧数据接收完,或者一帧数据和设定的DMA缓冲区不一样长时候的处理方法。
页:
[1]
2