This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

2812的SCI FIFO复位和不复位一直读的结果不一样

2812的SCI通过FIFO接收串口助手发送的16字节数据,中断深度16,当我一次发送17个字节时,第一个接收的字节被丢掉,那么FIFO的数据应该是2-17,读完2-17这16个字节后如果我再读FIFO读到的数都是17,如果此时我复位然后使能FIFO再读FIFO读到的数据居然是16。。。Why?FIFO复位后不应该指向0吗

图中的DSP28x_usDelay(5000)是为了防止在其后面仿真打断点导致接收不到第17个字节

  • SciaRegs.SCIFFTX.all = 0xC022; // Hold SCI in reset, enable FIFO, hold FIFO in reset, clear FIFO status, clear int, enable int, set int level to 0
    看看有hold FIFO in reset
  • 感谢您的指导,我的意思是我复位FIFO后重新使能FIFO,然后再读取FIFO读到的值不是FIFO0的值,而是FIFO1的值,想不明白为什么复位后反而读到的不是FIFO0的值