工具与软件:
如何配置 MCU2_0的串行端口以获得460800的精确波特率?
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.
工具与软件:
如何配置 MCU2_0的串行端口以获得460800的精确波特率?
您好!
您可以在初始化 UART 实例时更新波特率。 在打开 UART 实例之前、您必须更新 UART 参数。
例如:
UART_Handle uart = NULL; UART_Transaction transaction; UART_Params uartParams; UART_Params_init(&uartParams); uartParams.baudRate = 460800; uart = UART_open(uartTestInstance, &uartParams);
谢谢!
Neehar
您好、
有关详细信息、请参阅12.1.6.2.1.3 UART 协议和数据格式。 将 HwAtr 设置为 UART13x_OPER_MODE、将波特率设置为460800。 然后、您可以直接与 PC 串行调试工具通信
症状:1. PC 上串行端口调试工具的波特率设置为460800、每次发送和接收一个或两个字节之间的数据通信是正常的。 如果一次发送或接收的数据超过三个字节、则通信异常。 串行端口调试工具将继续接收所有零异常数据
2、PC 上串行调试工具的波特率设为461538、通讯正常。
谢谢!
Wangmuzhang
您好!
通过公式 Divisor value =工作频率/(波特率的倍数(13或16)×波特率)、在图表中、我们可以得到的最接近的波特率为460800的值是461540、它的误差百分比为+0.16。
此外、我还研究了更改工作时钟频率的各种实现方式、可以是192MHz、64MHz、96MHz 和48MHz、结合使用 UART 16x 模式和 UART 13x 模式、但它们都不会产生分频值的十进制值。
谢谢!
Neehar
尊敬的 Maxiel:
无法准确配置460800的波特率、因为 Linux 和 RTOS 都遵循上述表格。 您只能实现误差百分比为+0.16%的461540。要查看当前波特率、您可以访问 UART_DLH、UART_DLL 以获得除数值、并访问 UART_MDR1[2:0]以获得波特率倍数、并使用以下公式:
除数值=工作频率/(波特率的倍数(13或16)×波特率)
谢谢!
Neehar
您好!
请在 RTOS UART 驱动程序中集成以下更改、以支持460800波特率。
e2e.ti.com/.../uart_5F00_480600_5F00_support.patch
此致、
Sudheer