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.
我无法在 Rx 引脚上获得中断。 器件 TMS320F28335
首先、我配置引脚
EALLOW; GpioCtrlRegs.GPAPUD.bit.GPIO9 = 0;//为 GPIO9启用上拉 GpioCtrlRegs.GPAPUD.bit.GPIO11 = 0;//启用 GPIO11 (SCIRXDB) GpioCtrlRegs.GPAQSEL1.bit.GPIO11 = 3;//异步输入 GPIO11 (SCIRXDB) GpioCtrlRegs.GPQSEL1.bit.GPIO11 = 3;//为 GPIO11.x 配置 GPIO11./GPIO9 =操作;GPO2/ GPIO9.GPIO11.= GPIO9.GPIO11./ GPIO9.GPIO11.0XDB = GPIO9.GPIO9.GPIO9.GPIO11.GPIO9.GPIO9.GPIO9.GPIO11./ GPIO9.GPIO11.GPIO11.GPIO11.GPIO11.GPIO9.GPIO11.
其次、我配置寄存器
ScibRegs.SCICCR.all =0x0007;// 1个停止位、偶校验、无环回 //无奇偶校验,8个字符位, //异步模式,空闲线协议 ScibRegs.SCICTL1.all =0x0003;//启用 TX、RX、内部 SCICLK、 //禁用 RX ERR、SLEEP、TXWAKE ScibRegs.SCICT2.bit.RXBINTENA=1; ScibRegs.SCIHBAUD = 0x0000; ScibRegs.SCILBAUD = SCI_PRD; SciaRegs.SCICCR.bit.LOOPBKENA=0; ScibRegs.SCIFFTX.All=0xC021; ScibRegs.SCIFFRX.All=0x0001;//缓冲区大小更改为1以避免 FIFO 中的缓冲并立即处理数据 ScibRegs.SCIFFCT.All=0x00; SCICTL1.all =0x0023;SCICTL1 //从 Reset ScibRegs.SCIFFTX.bit.TXFIFOXRESET=1撤回 SCI; ScibRegs.SCIFFRX.bit.RXFIFORESET=1;
我启用中断
PieVectTable.SCIRXINTB =&sciRxFifoIsr;//添加用于修复 CPU UART PieCtrlRegs.PIEIER9.bit.INTx3=1;//SCIRXINTB IER = 0x100;//启用 CPU INT EnableInterrupts ();//启用全局中断
这是一个中断例程。
中断空 scibRxFifoIsr (void) { //if (ScibRegs.SCIRXST.bit.RXRDY = 1) uint8 chr = ScibRegs.SCIRXBUF.all;//读取数据 ScibRegs.SCIFFRX.bit.RXFFOVRCLR=1;//清除溢出标志 ScibRegs.SCIFFRX.bit.RXFFINTCLR=1;//清除中断标志 PieCtrlRegs.PIEACK.All|=0x100; //发出 PIE ACK }
我在示波器上看到的是来自 RX 引脚的数据包,但是中断不会发生。