2812的SCI通过FIFO接收串口助手发送的16字节数据,中断深度16,当我一次发送17个字节时,第一个接收的字节被丢掉,那么FIFO的数据应该是2-17,读完2-17这16个字节后如果我再读FIFO读到的数都是17,如果此时我复位然后使能FIFO再读FIFO读到的数据居然是16。。。Why?FIFO复位后不应该指向0吗
图中的DSP28x_usDelay(5000)是为了防止在其后面仿真打断点导致接收不到第17个字节
mangui zhang: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
2812的SCI通过FIFO接收串口助手发送的16字节数据,中断深度16,当我一次发送17个字节时,第一个接收的字节被丢掉,那么FIFO的数据应该是2-17,读完2-17这16个字节后如果我再读FIFO读到的数都是17,如果此时我复位然后使能FIFO再读FIFO读到的数据居然是16。。。Why?FIFO复位后不应该指向0吗
图中的DSP28x_usDelay(5000)是为了防止在其后面仿真打断点导致接收不到第17个字节
Konlen Z:
回复 mangui zhang:
感谢您的指导,我的意思是我复位FIFO后重新使能FIFO,然后再读取FIFO读到的值不是FIFO0的值,而是FIFO1的值,想不明白为什么复位后反而读到的不是FIFO0的值