用串口工具连续给28335的SCIB发送数据,以中断方式接收数据,数据前30秒左右正常进入中断服务函数,30s左右过后,无法进入中断服务函数,当时同时定时器0正常工作LED灯的闪烁无问题。SCIB配置为无FIFO中断接收发送模式。
下面为配置代码。
void scib_fifo_init(void)
{
ScibRegs.SCICCR.all =0x0007;
ScibRegs.SCICTL1.all =0x0003;
ScibRegs.SCICTL2.bit.RXBKINTENA = 1;
ScibRegs.SCICTL2.bit.TXINTENA = 1;
ScibRegs.SCIHBAUD = 0;
ScibRegs.SCILBAUD = 39;
SciaRegs.SCICCR.bit.LOOPBKENA =0;
ScibRegs.SCICTL1.bit.TXENA = 1; // SCI transmitter enable
ScibRegs.SCICTL1.bit.RXENA = 1; // SCI receiver enable
ScibRegs.SCICTL1.bit.SWRESET = 1;
}
__interrupt void scibRxIsr(void)
{
DINT;
Uint8 rcvdat;
rcvdat = ScibRegs.SCIRXBUF.all;
ScibRegs.SCITXBUF = rcvdat;
PieCtrlRegs.PIEACK.all|= PIEACK_GROUP9; // Issue PIE ACK
EINT;
}
peng chen9:
现将定时器0关闭后,串口接收中断可以一直进入,timer0 串口中断接收有冲突,如何解决。
用串口工具连续给28335的SCIB发送数据,以中断方式接收数据,数据前30秒左右正常进入中断服务函数,30s左右过后,无法进入中断服务函数,当时同时定时器0正常工作LED灯的闪烁无问题。SCIB配置为无FIFO中断接收发送模式。
下面为配置代码。
void scib_fifo_init(void)
{
ScibRegs.SCICCR.all =0x0007;
ScibRegs.SCICTL1.all =0x0003;
ScibRegs.SCICTL2.bit.RXBKINTENA = 1;
ScibRegs.SCICTL2.bit.TXINTENA = 1;
ScibRegs.SCIHBAUD = 0;
ScibRegs.SCILBAUD = 39;
SciaRegs.SCICCR.bit.LOOPBKENA =0;
ScibRegs.SCICTL1.bit.TXENA = 1; // SCI transmitter enable
ScibRegs.SCICTL1.bit.RXENA = 1; // SCI receiver enable
ScibRegs.SCICTL1.bit.SWRESET = 1;
}
__interrupt void scibRxIsr(void)
{
DINT;
Uint8 rcvdat;
rcvdat = ScibRegs.SCIRXBUF.all;
ScibRegs.SCITXBUF = rcvdat;
PieCtrlRegs.PIEACK.all|= PIEACK_GROUP9; // Issue PIE ACK
EINT;
}
peng chen9:
回复 peng chen9:
关掉定时器后工作时间能长一些还是会一段时间后进入不了串口接收中断