您好!
我使用 的是 TMS570LS0432 。 我希望 在中断模式下与 SCI Rx 通信、并每隔1秒将接收到的数据传输到终端。
进行比较
我启用了 Rx INT 、并且我正在正确地从终端接收数据到微控制器。
对于从微控制器到终端的每1秒传输、我启用了100ms 的 RTI INT、并且每1秒传输一次数据。
如果我从终端发送数据、那么我可以正确接收数据、同样我也可以在终端上传输正确的数据。但是、如果我不从终端向微控制器发送任何数据、我仍然会接收垃圾数据、因为每次代码运行时都会接收垃圾数据 在 RX ISR 中,即使我没有从终端发送任何数据。我如何避免这个问题,需要在 scisend()函数中进行任何更改。
这是我的代码
char ReceivedChar[1]={0};
字符计数= 0;
int main (空)
{
_enable_IRQ ();
sciInit();
rtiinit();
rtiStartCounter (rtiCOUNTER_BLOCK0);
sciReceive (scilinREG、1、ReceivedChar[0]);
while (1)
{
if (count = 10)
{
memset (Tx_buff、0、sizeof (Tx_buff));
sprintf (Tx_buff、"\r\nSpeed_EST_RPM:%d\0"、ReceivedChar[0]);
sciSend (scilinREG、strlen (Tx_buff)、(uint8*) Tx_buff);
gioToggleBit (gioPORTA、 1);
计数= 0;
}
}
}
/******* 主代码结束 /
void sciNotification (sciBASE-t * sci、uint32标志)
{
sciReceive (sci、1、ReceivedChar[0]);
}
void rtiNotification (uint32_t 通知)
{
if (notification=rtiNOTIFICATION_COMPARE0)
{
count++;
}
}
提前感谢..