您好!
我使用的是 TMS570LS0432。 我希望 SCI 在中断模式下通信、但尚未成功。它在轮询模式下工作良好。 是否有任何示例代码和处理器可用于 sci 中断模式。
如果是、请向我们提供。正在等待您的肯定答复。
提前感谢...
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.
您好!
我使用的是 TMS570LS0432。 我希望 SCI 在中断模式下通信、但尚未成功。它在轮询模式下工作良好。 是否有任何示例代码和处理器可用于 sci 中断模式。
如果是、请向我们提供。正在等待您的肯定答复。
提前感谢...
您好!
1.在 HALCoGen 中的 SCI 全局启用 SCI TX 和 RX INT
2.启用 VIM 通道0-31下的 SCI 中断(通道13和通道27)
3.检查 VIM RAM 以确保为通道13和通道27分配了正确的 ISR:线性高电平中断和线性低电平中断
4.生成代码、并将 HALCoGen 导入 CCS 项目
5.在您的 main()中启用 IRQ 中断:_enable_IRQ ();
6.初始化 SCI:sicInit(),并通过 SCI 发送 TX/RX 数据
7.在 TeraTerm 终端中键入字符时应获得 INT
8. ISR 位于 sci.c 中
您好!
我已经完成了多达6个步骤、并且.I 希望从微控制器侧持续传输数据。 执行此操作后、我编写了以下代码来发送和接收数据。我在 TeraTerm 终端不断接收数据、但从 TeraTerm 传输时、我在微控制器 side.please 上未接收到有效数据。建议 在以下代码中写入数据时出错。
int main (空)
{
_enable_IRQ ();
sciInit();
memset (Tx_buff、0、sizeof (Tx_buff));
sprintf (Tx_buff、"\r\n 速度_EST_RPM:%d\0"、speed_est_rpm);
sciSend (scilinREG、sizeof (Tx_buff)、(uint8*) Tx_buff);
sciReceive (scilinREG、1、ReceivedChar);
while (1);
}
void sciNotification (sciBASE-t * sci、uint32标志)
{
memset (Tx_buff、0、sizeof (Tx_buff));
sprintf (Tx_buff、"\r\n 速度_EST_RPM:%d\0"、speed_est_rpm);
sciSend (scilinREG、sizeof (Tx_buff)、(uint8*) Tx_buff);
sciReceive (scilinREG、1、ReceivedChar[0]);
}
感谢你的答复。
如果我禁用 TX INT 并在 sci 通知中注释 scisend(),则只要键入 terminal,我就能够将数据仅传输一次到终端,并在控制器上接收数据。但是我希望连续地将数据传输到终端,并且仅在键入时才在控制器侧接收数据 终端。那么、如何执行此操作。
对于连续传输、我启用 了100ms 的 RTI 中断、并且每隔1秒我就将数据传输 到终端、传输的数据只不过是从终端接收到的数据。
这是我的代码
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 (scilinREG、1、ReceivedChar[0]);
}
void rtiNotification (uint32_t 通知)
{
if (notification=rtiNOTIFICATION_COMPARE0)
{
count++;
}
}
之后每次我在终端中键入内容时、 都会在微控制器中正确接收数据、但之后会显示垃圾数据、直到我从终端发送字节。
代码中的任何错误。
正在等待您的回复。
你(们)好
请在启动 RTI 之前启用 RTI 中断:
_enable_IRQ ();
rtiInit();
rtiEnableNotification (rtiNOTIFICATION_COMPARE0);
rtiStartCounter (rtiCOUNTER_BLOCK0);
sciReceive (scilinREG、1、ReceivedChar[0]);
while (1)
{...}