TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

TMS320F28335: SCI通信时FIFO深度为16级,如何接收超过16级的数据?

Part Number: TMS320F28335

各位前辈,我在采用TMS320F28335的SCI通信时,SCI的FIFO模式的深度最大为16级,接收数据最大为16字符,我想要获取一个31字符的数据,请问该如何获取正确的数据?请问需要如何对我现有的代码进行修改?

/*
* SCIA接收中断服务函数
*/
interrupt void SciaRxFifoIsr(void)
{
int i = 0;
while(SciaRegs.SCIFFRX.bit.RXFFST!=1)
{
m[i] = SciaRegs.SCIRXST.all;
i++;
}

msg = "You just sent the following characters:\r";
Scia_msg(msg);
Scia_msg(m);
//
SciaRegs.SCIFFRX.bit.RXFFOVRCLR = 1;
SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1;
PieCtrlRegs.PIEACK.bit.ACK9 = 1; //PIEACK:PIE中断应答寄存器
//X=1说明来自中断组的中断向量已经向CPU发送了中断请求,该中断组的其他中断项目目前被锁存;向相应的中断位写1,可以让该位清零,并且让PIE模块产生一个脉冲给CPU中断
//以使得CPU可以响应该组中断中尚未被相应的中断
}