求问这种情况,比如我用串口调试助手循环发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的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
rookiecalf:
可以先降一下波特率,找找看有没有配置的问题
求问这种情况,比如我用串口调试助手循环发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的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
wei li20:
回复 rookiecalf:
谢谢你的回复,我试过降低波特率,但效果反而更糟,115200数据7分钟才错位,用2400数据1分钟不到就错位了,是串口不稳定吗?115200设置为0x28应该没有错吧?另外,有没有可能是硬件问题导致的或CCS3.3的问题?
求问这种情况,比如我用串口调试助手循环发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的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
rookiecalf:
回复 wei li20:
不觉得是ccs的问题,波特率有问题,那应该一直有问题,不会出现前面好,后面坏的现象。
不知道在错位后,现象是否持续。
求问这种情况,比如我用串口调试助手循环发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的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
wei li20:
回复 rookiecalf:
错位后,会保持一段时间稳定,但时间没有第一次稳定长,是不是SCI通讯已经丢失同步?不知道怎么来检查原因
求问这种情况,比如我用串口调试助手循环发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的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
wei li20:
回复 rookiecalf:
你好,我在SCI接收中断服务子程序中加了几句代码,延时了一点时间,数据就稳定了,请问这是什么原因
求问这种情况,比如我用串口调试助手循环发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的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
rookiecalf:
回复 wei li20:
wei li20
你好,我在SCI接收中断服务子程序中加了几句代码,延时了一点时间,数据就稳定了,请问这是什么原因
求问这种情况,比如我用串口调试助手循环发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的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
wei li20:
回复 wei li20:
我的代码就是一个简单的For循环延时,没有对传输造成影响,我想知道中断服务子程序运行时间是不是有什么规则?还是串口有些中断标志位会有时间需求才可以擦除?
求问这种情况,比如我用串口调试助手循环发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的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
Charles Ji:
回复 wei li20:
用串口助手发送时,每发一个数 ,延时一下 再发下一个数,就行了
求问这种情况,比如我用串口调试助手循环发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的问题还是波特率误差的原因呢?这种现象是不是丢了数据呢?为什么会这样?
wei li20:
回复 Charles Ji:
就是发送间隔呗,我试过,没有用