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.

[参考译文] TM4C1294NCPDT:如何更改波特率运行时不执行重启。

Guru**** 2553260 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/995918/tm4c1294ncpdt-how-to-change-the-baud-rate-runtime-with-out-doing-reboot

器件型号:TM4C1294NCPDT

您好!

配置 UART 波特率后、我无法重新配置该波特率。 我的要求是根据用户命令更改波特率、而不执行重新引导。 当系统上电时、它将 UART 初始化为 默认 波特率。 我想根据用户命令重新配置波特率、但无法重新配置。 我使用 CCS 10.1进行开发、SDK 为"tirtos_tivac_2_16_00_08"。 在重新配置 UART 之前、我调用了"UART_Close" API、然后调用"UARTConfigure" API、该 API 再次调用"UART_open" API。 我在调用"UART_open" API 后获得句柄、但我无法在新波特率上进行通信。 如果我保存该波特率并重新启动系统、则表明它正在工作。 请告诉我更改波特率运行时间而不重新启动的步骤。

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

    考虑使用 TivaWare 函数 UARTBusy()来确保 UART 当前没有发送,然后调用 UARTDisable()、UARTConfigGetExpClk(),更改波特率值,然后调用 UARTConfigSetClk()和 UARTEnable()。 当然、此时接收到的任何字符都将损坏。

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

    感谢 Bob 的回复。 我正在从 UARTTIVA.c 文件中调用函数"UARTTiva_close"、该文件将执行 UARTDisable。 然后、我从同一个文件中调用函数"UARTTiva_open"。 此函数首先调用"UARTEnable"、然后调用"UARTConfigSetExpClk"。 因此、您建议的序列已经存在。 但它仍然不会改变波特率。 注:"UARTBusy" 和"UARTConfigGetExpClk"不会被"UARTTIVA_Close"或"UARTTIVA_open"调用。 请就此发表您的意见。

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

    一旦打开端口、然后想要更改 buadrate、您是否尝试在 UARTTiva_xxxx 函数之外运行 TivaWare 函数?