请问技术支持,我使用28335进行SCI通信时,中断接收,但是接收到数据后,不把他读走,下次接收到数据无法进入中断函数里面。
此外,我用fifo接收时,当数据满足fifo个数时,标志位会变化,但是无法进入中断函数。
Seven Han:
您是否有清标志位:
SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1; // Clear Overflow flag SciaRegs.SCIFFRX.bit.RXFFINTCLR=1; // Clear Interrupt flag PieCtrlRegs.PIEACK.all|=0x100; // Issue PIE ack
请问技术支持,我使用28335进行SCI通信时,中断接收,但是接收到数据后,不把他读走,下次接收到数据无法进入中断函数里面。
此外,我用fifo接收时,当数据满足fifo个数时,标志位会变化,但是无法进入中断函数。
mangui zhang:
这些情况应该都是配置问题和标志位问题
请问技术支持,我使用28335进行SCI通信时,中断接收,但是接收到数据后,不把他读走,下次接收到数据无法进入中断函数里面。
此外,我用fifo接收时,当数据满足fifo个数时,标志位会变化,但是无法进入中断函数。
quanfa he:
回复 Seven Han:
请问如果我不把fifo的数据读走,那么清除了标志位他还会再进入中断么?
请问技术支持,我使用28335进行SCI通信时,中断接收,但是接收到数据后,不把他读走,下次接收到数据无法进入中断函数里面。
此外,我用fifo接收时,当数据满足fifo个数时,标志位会变化,但是无法进入中断函数。
quanfa he:
回复 Seven Han:
不使用fifo,直接中断接收。使用的是scic,但是 中断不把ScicRegs.SCIRXBUF.all的数据读走,此后就无法进入到中断中了。代码如下:
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1; i++;
PieCtrlRegs.PIEACK.all |= M_INT8;
请问技术支持,我使用28335进行SCI通信时,中断接收,但是接收到数据后,不把他读走,下次接收到数据无法进入中断函数里面。
此外,我用fifo接收时,当数据满足fifo个数时,标志位会变化,但是无法进入中断函数。
Seven Han:
回复 quanfa he:
quanfa he不使用fifo,直接中断接收。使用的是scic,但是 中断不把ScicRegs.SCIRXBUF.all的数据读走,此后就无法进入到中断中了。
不读走SCIRXBUF中的数据的话,RXRDY标志不会自动清掉的,无法判断是否有新数据,也就无法再进中断了