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.

TMS320F28069: 串口中断进不去

Part Number: TMS320F28069


故障现象:电路板通过串口转USB数据线和PC连接,通讯正常。此时拔掉PC的USB线缆,再插上USB线缆。发送数据,程序无法再进入串口中断。

部分代码:

/*开串口接收中断*/
IER |= M_INT9;
PieCtrlRegs.PIEIER9.bit.INTx1 = 1;

__interrupt void sciaRxIsr(void)
{
uart_enqueue(&DGCU_queue, SciaRegs.SCIRXBUF.all);

SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;
PieCtrlRegs.PIEACK.bit.ACK9=1;
}

SciaRegs.SCIFFTX.bit.SCIFFENA = 1;
SciaRegs.SCIFFTX.bit.SCIRST = 1;
SciaRegs.SCIFFTX.bit.TXFFIENA = 0;
SciaRegs.SCIFFTX.bit.TXFFIL = 0x01;
SciaRegs.SCIFFTX.bit.TXFFINTCLR = 1;
SciaRegs.SCIFFTX.bit.TXFIFOXRESET = 0;
SciaRegs.SCIFFRX.bit.RXFFOVRCLR = 1;
SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 0;
SciaRegs.SCIFFRX.bit.RXFFIENA = 1;
SciaRegs.SCIFFRX.bit.RXFFIL = 0x01;
SciaRegs.SCIFFCT.all = 0x00;
SciaRegs.SCICTL1.bit.SWRESET = 1;
SciaRegs.SCIFFTX.bit.TXFIFOXRESET = 1;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;

部分调试:

1.单独使用PC端串口调试助手,硬件上连接为自发自收,数据正常;

2.在与电路板通讯时,拔掉PC端USB线缆,SciaRegs.SCIRXST.bit.BRKDT寄存器会置1;

3.尝试在程序中软件复位串口,可以将SciaRegs.SCIRXST.bit.BRKDT清零,但串口中断依然无法进入 ;