Treasure101 发表于 2025-5-30 10:00

SYSCLK 时钟与 UART 速度的关系

比如在STM32G070中当 SYSCLK 时钟以 64MHZ 运行时,PC 的 UART 速度不可能达到 115200
8MHZ 外部晶体。选择了 HSE 并选择了 PLLCLK。64MHZ / 115200 / 16 = 34.7222假设 CPU 选择 34 作为除数,则波特率为 117647.1误差2%,太高了但是设置为 59MHz,就能够在 921,600 处成功通信59MHZ / 921600 / 16 = 4.0012 (假设除数 = 4,则 99.9702% 准确率)59MHZ / 115200 / 16 = 32.009 (假设除数 = 32,则 99.9702% 准确率)
https://community.st.com/t5/image/serverpage/image-id/30013i7D5304AC9CE0A6E2/image-size/large?v=v2&px=999

烟雨蒙蒙520 发表于 2025-5-31 23:04

当时钟频率不能整除计算出的分频值时,就会产生误差。

远山寻你 发表于 2025-6-9 17:00

STM32G0 的 UART 外设时钟通常由系统时钟(SYSCLK)或其分频后的时钟(如 APB1 或 APB2 时钟)提供

江河千里 发表于 2025-6-9 18:55

在 STM32G0 中,UART1 和 UART2 的时钟通常来自 APB1 时钟,而 UART3(如果存在)可能来自 APB2 时钟(具体取决于芯片型号)

冰春彩落下 发表于 2025-6-9 22:19

使用 STM32CubeMX 时,可以直观地查看时钟树和 UART 时钟频率

别乱了阵脚 发表于 2025-6-9 22:37

如果 SYSCLK 为 64 MHz,APB1 的时钟频率可能是 64 MHz(不分频)或 32 MHz(二分频)

光辉梦境 发表于 2025-6-9 23:00

APB1 和 APB2 的时钟频率可以是 SYSCLK 的 1 倍、2 倍或其他分频值(取决于时钟配置)

一秒落纱 发表于 2025-6-10 01:00

在 STM32G0 系列微控制器中,SYSCLK(系统时钟)与 UART(通用异步收发传输器)速度之间存在直接关系,理解这种关系对于正确配置 UART 通信至关重要

暖了夏天蓝了海 发表于 2025-6-10 06:00

USARTDIV 是一个 12 位的值,由整数部分和小数部分组成

三生万物 发表于 2025-6-10 09:00

较高的 UART 时钟频率可以提高波特率的精度,因为 USARTDIV 的小数部分可以更精确地表示

淡漠安然 发表于 2025-6-10 11:00

波特率误差可能导致通信错误,尤其是在高速通信或长距离通信中。通常建议波特率误差小于 2%

夜阑风雨 发表于 2025-6-10 15:41

确保 SYSCLK 和 APB1/APB2 的时钟配置正确,可通过 STM32CubeMX 或手动配置时钟树。
页: [1]
查看完整版本: SYSCLK 时钟与 UART 速度的关系