0

我正在尝试设置一个 UART 中断以在 UART 屏幕上输入字符时触发。问题是我设置它的方式似乎在发送和接收时触发了中断。我已经阅读了数据表,它并没有真正说明它是否可以完成以及如何完成。它只是说串行端口的中断是可用的。这就是我设置UART的方式

S0CON   =   0x50;      
PCON    |=  0x80;       /* Double Baud rate */
ADCON0  |=  0x80;       /* Use baudrate generator */
S0RELL  =   0xCC;       /* Baudrate = 9614 Baud @ 16Mhz */
S0RELH  =   0x03;
TI0     =   1;                /* Ready to transmit */
ES0 =1;

有谁可能知道如何做到这一点?我正在使用 Keil 编译器和英飞凌 C509 数据表**链接已修复

谢谢

4

1 回答 1

1

不幸的是,看起来你不能干净地做你想做的事。查看用户手册——数据表通常不足以解决此类问题——查看图 7.4。硬件设置的通道0、TI0和RI0的发送和接收中断标志,都触发了默认的串行通信中断,看来两者都不能禁用。

可能还有其他选择,但我会考虑以下选项之一:

  • 轮询(相对于使用 UART 的任何中断)
  • 在工作时使用中断,但首先在串行通信中断中检查 RI0 是否已设置,如果未设置,请立即退出。(只要确保没有任何与此相关的时序问题并清除接收标志以确保您没有任何丢弃字节的可能性。)

链接到 C509-L 用户手册(不确定它会持续多久):英飞凌产品网站

于 2012-11-20T22:05:14.537 回答