你(们)好!
我正在研究将现有的 SCI TX 通信(我将数据传输到 LCD 屏幕)转换为基于中断的模式、因为我发现 CAN 中断会干扰消息流。 我假设如果我将 SCI 移至基于中断的解决方案、那么我可以将 SCI 中断优先级设置为高于 CAN 优先级以避免这一问题?
使用 示例"sci_ex2_loopback_interrupts.c"作为参考、我想将我的现有 TX 数据移动到 sDataA[]缓冲区并按照下面的 TX ISR 进行发送。 为了使 sDataA 能够使用、对大小是否有任何限制?
我真正不明白的是、当我没有要发送的数据时会发生什么情况。 IE 在 sDataA[]中没有新数据。 这个中断一直在触发,我 不想继续 调用 SCI_writeCharArray()来清除中断(这似乎是必要的,以避免这种卡住)。
请您提供意见。
非常感谢
__interrupt void sciaTXFIFOISR (void)
{
SCI_writeCharArray (SCIA_BASE、sDataA、sDataA_length);
SCI_clearInterruptStatus (SCIA_BASE、SCI_INT_TXFF);
//
//发出 PIE ACK
//
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_group9);
}