我STM32串口为不占cpu资源使用DMA方式进行接收,设定接收缓冲区,在while(1)中查询已接收到的数据并进行处理,可是使用串口调试工具发送数据到板子,板子再将数据通过窗口打印处理,打印的数据和发送的数据出现不一致情况,求大侠帮忙看看!谢谢大家
发出来就多了道手续。
一步一步查,就是把几个过程分开,保证前面的结果正确,再查下一步。一步一步,就是这意思。
通过j-link在线仿真调试,发现打印出来的数据和缓冲区的数据一致,可是这个数据和我发送的是有区别的,比如我发送
ff fe fe f0 e0
可是缓冲区的数据变成了
ff fe 20 f0 f0
这样的的数据,难道DMA搬运数据出问题?可是我的配置和网上的例程基本差不多的。如果DMA搬运数据出问题,可是第一个字节ff总是不会出错,这是为啥?
这个检查过好几次,没有什么问题的
有校验。有木有可能是硬件问题,因为断电一段时候在上电是发送正常,长时间运行一下,又可能出现这样的问题??
这个不太可能是硬件问题........
波特率才设置为9600
只可能是程序或者硬件有问题。
因为程序简单,就这点配置,没发现问题所在,换另一块板子试,不会出现这样的错误,但是说之前那块是硬件问题,我也觉得不太可能!!!
不是硬件问题,是程序问题,因为另一块板子也出现同一的情况了!!可是程序中,真心找不出问题出来!!急死了!