我用SCI FIFO发送中断发数,过程是我先讲要发送的数组一个一个的放入缓存区,然后触发中断,直到发送完成。
现在我要发送256个数据,有时候它发的正确,有时候它只能发送100多个,并且头和尾都在,中间数据都丢了。
下边是我用来测试的,放到WHILE循环中
while(1)
{
data->sendSCIChannel = SCI1;
SendData(data);
DELAY_US(2000000L);
}
下边是我监视到的结果:
只收到80个数据,头尾一样,中间的数据丢了很多,而且还不一样
A5 5A 00 ED FF 73 CF B1 B3 6A E4 9F E7 6F AF C3 12 06 BA F2 FD 8F 1D BA 3C 30 EA 6B 4D B4 B9 AD 6E 30 6F 5A 73 B3 BF 5F 06 AA 94 A2 26 2C 9D 1E 6D 87 07 5D 86 10 41 42 65 58 BE E4 67 DB 99 5A E2 66 AF 4C FC 08 BD 12 8E F0 0F 59 93 D3 BA CF
A5 5A 00 ED FF 73 CF B1 B3 6A E4 9F E7 6F AF C3 12 06 BA F2 FD 17 D4 90 E3 82 52 6B 4D B4 B9 AD 6E 30 6F 5A 73 B3 BF 5F 06 AA 94 A2 26 2C 9D 1E 6D 87 07 5D 86 10 41 42 65 58 BE E4 67 DB 99 5A E2 66 AF 4C FC 08 BD 12 8E F0 0F 59 93 D3 BA CF
后来,我换了SCI的波特率,就没问题了,而且只有256000是没问题的,中间接了个485