关于28335与CPU进行SCI通讯掉数据的问题

2019-07-25 15:26发布

大家有没有遇见这种情况,比如我用串口调试助手循环发11 22 33 44 55 这5组数据给DSP,然后在程序里写入a[5]这个数组进行读取,按理来说a[0]=11,a[2]=22,a[3]=33,a[4]=44,a[5]=55.而且应该一直保持不变,但过一段时间(时间有长有短),数组读数就会发生错位,而且错位位数不定,比如变成a[0]=44,a[2]=55,a[3]=11,a[4]=22,a[5]=33.请教大神,这是什么原因呢?我觉得是丢了数据导致赋值错位,我的波特率是115200,发送间隔10ms,没有用FIFO,用普通中断接收,换了好几种调试助手都没有用。大家觉得是DSP的问题还是串口芯片的问题还是CCS3.3的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
zhangmangui
1楼-- · 2019-07-25 20:56
这是有可能的      不用FIFO通信就有这个不好处  
所以一般都会增加针头等处理   
fishyy
2楼-- · 2019-07-26 00:12
zhangmangui 发表于 2015-10-7 10:17
这是有可能的      不用FIFO通信就有这个不好处  
所以一般都会增加针头等处理     ...

也就是说用FIFO就可以避免这种掉数据的情况吗?还有帧头怎么加呢?
andyjian
3楼-- · 2019-07-26 03:22
 精彩回答 2  元偷偷看……
fishyy
4楼-- · 2019-07-26 04:34
andyjian 发表于 2015-10-8 08:18
1.增加帧头帧尾(自己定义,属于应用层)
2.增加时间片分帧

请问第二个是什么意思,您知道掉数据的原因吗
andyjian
5楼-- · 2019-07-26 09:32
数组是a[5],还是a[6]
fishyy
6楼-- · 2019-07-26 14:15
andyjian 发表于 2015-10-8 12:51
数组是a[5],还是a[6]

是a[5],就是把11,22,33,44,55这五个八位放进5个元素里,你说的帧头我是不是可以把11就当做帧头呢

一周热门 更多>