请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:TMS320F2.8335万 工具/软件:Code Composer Studio
我无法在Rx引脚上获得中断。 器件TMS320F2.8335万。
首先配置针脚
EALLOW; GpioCtrlRegs.GPAPUD.bit.GPIO9 = 0;//为GPIO9启用上拉 gpioCtrlRegs.gpapud.bit.gPIO11 = 0;//启用GPIO11 (SCIRXDB) gpioCtrlRegs.gpQSEL1.bit.gPIO11 = 3;//异步输入GPIO11 (SCIRXDB) gpioCtrlRegs.gpamuDB.gpiX1.bit.gPIO11/ gPIO1.gPIODIX1.gpiO 配置操作
其次,我配置寄存器
ScibRegs.SCICCR.ALL =0x0007;// 1停止位,偶数奇偶校验,无回送 //无奇偶校验,8个字符位, //异步模式,空闲行协议 ScibRegs.SCICTL1.all =0x0003;//启用TX,RX,内部SCICLK, //禁用RX ERR,睡眠,TXWAKE ScibRegs.SCICT2.bit.RXKINTENA =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;ScibRegs.0x0001.ICT23 //从重置 ScibRegs.SCIFFTX.Bit.TXFIFOXRESET=1; ScibRegs.SCIFFRX.Bit.RXORESET=1;
我启用中断
PieVectorTable.SCIRXINTB =&scibRxFifoIsr; PieCtrlRegs.PIEIER9.bit.INTx3=1;//SCIRXINTB IER = 0x100;//启用CPU INT EnableInterrupts();//启用全局中断
这是一个中断例程。
中断void 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; //问题派克
}
我在示波器上看到数据包进入RX引脚,但中断不会发生。