[家电应用] 串口通讯波特率异常

[复制链接]
 楼主| 灰色与青 发表于 2025-7-3 19:17 | 显示全部楼层 |阅读模式
在使用中颖 SH79F9476 进行 EUART 串口通讯时,按公式计算并配置了波特率寄存器,可实际通讯数据错乱。仔细检查发现,在计算波特率寄存器值时,将系统时钟频率定义错误,导致波特率偏差大。重新修正时钟频率定义,问题解决。相关计算代码如下:
// 假设正确系统时钟频率为24M​
#define F_CPU 24000000UL ​
#define BAUD 9600 ​
#define MYUBRR F_CPU/16/BAUD - 1 ​
void uart_init(void) {​
    uint16_t ubrr = MYUBRR;​
    UBRR0H = (uint8_t)(ubrr >> 8);​
    UBRR0L = (uint8_t)ubrr;​
    // 其他串口配置​
}

一点点晚风 发表于 2025-7-5 10:56 | 显示全部楼层
晶振频率偏移超范围,导致实际波特率偏离标称值,引发通信异常
野玫瑰 发表于 2025-7-6 09:38 | 显示全部楼层
波特率异常确实是分频配置错误或干扰。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

63

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部