当输出数据时,总是发生很怪异的错误,
初始CODE[3]={0 0 0};
发送1,结果{0 0 0};
发送2,结果{0 1 0};
发送3,结果{0 1 2};
发送4,结果{3 1 2};
然后5,结果{3 4 2};
然后6,结果{3 4 5};
然后7,结果{6 4 5};
接下来以此类推了。。
如果一次发送3个字符的话
初始CODE[3]={0 0 0}
发1 2 3;得{0 1 2}
发4 5 6,得{3 4 5}
发7 8 9,得{6 7 8}
发a b c,的{9 a b}
接下来以此类推
我用的是slave-fifo的AUTOOUT=1模式,主控制器是dsp2812,在发完a b c得{9 a b}后我把dsp复位,接下来再发d e f,发现得到的是{c d e},因为dsp已经被复位,所以c不可能是被保存在了dsp的其他寄存器里,并且在我发送d e f之前EP2EF=0,说明端点缓冲区是空的,c也应该不会在缓冲区里,但是我不确定,我设定EP2CFG=0xA2,EP2FIFOCFG=0x10,用的上位机发送软件是官方的CyConsole.所以我对于这个错误觉得很费解,感觉是上位机程序那里有问题,或是缓冲区的问题,但是又不知道具体是哪里,为什么上一次发出的字节或被扣留到下一次读取,求各路高手的解答了
|