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.

[参考译文] CCS/TMS320F2.8335万:SCIB RX中断问题。

Guru**** 2526700 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/569211/ccs-tms320f28335-scib-rx-interrupt-problem

部件号: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引脚,但中断不会发生。


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    如果不在SCIRXBUF中,您是否能够观察SCIRXEMU寄存器上的数据? 检查表达式窗口。
    此外,您是否能够传输数据(就像确认正确的波特率设置一样)?

    此致,
    Gautam
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我发现了问题。 我也应该启用fifo中断。 非常感谢。