打印
[技术问答]

串口接收问题

[复制链接]
1001|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
asbnasbn|  楼主 | 2014-8-1 19:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      232串行通信中,发送端连续发送12个字节,循环发送。接收端,单步调试第一次接收12个字节都是正确的,可是后面再接收的时候到中间就出错了,奇怪。
    比如我依次发送1、2、3、4、5、6、7、8、9、A、B、C,接收端接收中断里,i++,前12个数据都接收正确,可是继续接收时候,后面就成了1、2、3、4、9、8、6……等,有时是1、1、1、……。调了半天搞不明白,头疼的不行。如果发送或接收有错误,那为什么第一次接收的都是正确的呢?
    发送端和接收端全都单步调试过了,发送端数据循环发送12个是发送正确的啊,应该没问题,示波器观测都没有问题。接收端前面一次能正确,后边就不行了?奇了怪了,有没有对串口熟悉的高手或遇到过类似问题或有相关经验乐于分享的大虾,求拍醒啊!是不是要弄什么标志位,或者发送或接收哪里加上点delay,还是神马情况啊?小弟谢谢各位大虾了!
沙发
598330983| | 2014-8-5 13:01 | 只看该作者
每次发完等几个时钟周期试试看。

使用特权

评论回复
板凳
haolaishi| | 2014-8-5 15:08 | 只看该作者
1.发完清除缓冲
2.发送的速度放慢,while中加点延时,确保和波特率匹配

使用特权

评论回复
地板
mintspring| | 2015-2-28 16:07 | 只看该作者
时序乱了?还是没有发送成功,你等成功了再发下一个

使用特权

评论回复
5
mintspring| | 2015-2-28 16:08 | 只看该作者
通过while判断是否发送完成,完成了发第二个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

15

帖子

0

粉丝