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,还是神马情况啊?小弟谢谢各位大虾了! |