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.

[参考译文] TM4C129XNCZAD:TIVAWARE UART 驱动程序-中断前8个字符

Guru**** 1821780 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/578082/tm4c129xnczad-tivaware-uart-drivers---eight-characters-before-interrupt

器件型号:TM4C129XNCZAD

尝试使用 Tivaware UART 驱动程序。

配置端口后、在接收到八个字符后、我才会获得 Rx 中断、然后一次获取所有字符(然后必须再输入八个字符才能获得下一个中断等)。

传输似乎工作正常。

下面是我设置端口的方法(base 和 uartVector 是正确的值、在没有 ROM 前缀的情况下进行尝试、并且执行相同的操作、它在 TI_RTOS 下运行):

       Hwi_Params 参数;
 
       Hwi_Params_init (params);
       params.arg = chnl;
       params.priority = 0x80;
       params.instance->name ="UART";
       Hwi_create (UartVector[chnl]、UART_ISR、&params、NULL);

       ROM_UARTConfigSetExpClk (base、120000000、baud、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
       ROM_UARTIntEnable (base、UART_INT_RX);
       ROM_UARTEnable (base);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果在接收每个字符时需要中断,请通过调用 UARTFIFODisable()来禁用 FIFO;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Bob Crosby">如果在接收每个字符时需要中断,请通过调用 UARTFIFODisable()禁用 FIFO;

    [/报价]

    这几乎是正确的...  我阅读了手册并找到了有关 FIFO 的信息、并尝试将其禁用。

    事实证明,如果在 UARTEnable()调用之前禁用它,它将被忽略,并且仍使用 FIFO。

    我花了一段时间来计算这个。