TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28335: SCIC接收中断问题

Part Number:TMS320F28335

SCIC配置为非FIFO,中断接收模式,但是发现只能进入一次中断,但是根据SCIRXBUF寄存器看,应该是所有数据都收到了,请问这是为什么,配置代码如下

InitScicGpio();
// 设置字符格式,通信协议,通信模式
//软件复位SCI,复位值
ScicRegs.SCICTL1.bit.SWRESET = 0;
ScicRegs.SCICCR.all = 0x67;
// 使能SCI发送和接收器
ScicRegs.SCICTL1.bit.RXENA = 1; //使能接收功能
ScicRegs.SCICTL1.bit.TXENA = 1; //使能发送功能
ScicRegs.SCICTL2.bit.RXBKINTENA = 1;
// 设置波特率
ScicRegs.SCIHBAUD = 0x00;
ScicRegs.SCILBAUD = 0x40;
// 使能中断向量

EALLOW;
PieVectTable.SCIRXINTC = &scic_rx_fifo_isr;
EDIS;

PieCtrlRegs.PIEIER8.bit.INTx5 = 1; // PIE Group 9, int3
IER |= M_INT8; // Enable CPU INT

ScicRegs.SCICTL1.bit.SWRESET = 1;

Green Deng:

发送完成后有没有“Clear Interrupt flag” 和 “Issue PIE ACK”?

user5197967 说:只能进入一次中断,但是根据SCIRXBUF寄存器看,应该是所有数据都收到了

另外,这里具体是怎么判断只进入一次中断的?

,

user5197967:

进入一次中断,程序就会将 ch = ScicRegs.SCIRXBUF.all;  这个读取到环形缓冲区中,在我发送完之后,环形缓冲区只有一个数据。并且,在上位机持续发送的状态下,中断函数打了个断点,只进入一次中断函数,后面的再也运行不到断点

,

user5197967:

我查到问题了,是因为中断函数里面,响应中断写得中断函数组不对

,

Green Deng:

好的,恭喜问题解决!

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28335: SCIC接收中断问题
分享到: 更多 (0)