JacksonChen 发表于 2024-10-30 17:18

华大HC32L110C6UA系统时钟频率和串口波特率问题请教

本帖最后由 JacksonChen 于 2024-11-12 11:14 编辑

各位大佬好,刚接触华大芯片,小白一枚,请教一下如何在HC32L110C6UA的低功耗串口下使用外部低速32.768kHz系统时钟下,配置串口波特率是9600,虽然从网上搜过资料了解到9600波特率下使用外部低速时钟的误差率是44%,但是产品需要用到的蓝牙模块最低的波特率设置是9600,所以请教一下大佬们这个应该如何解决呢?
-----------------------------后续---------------------------
根据华大例程修改为使用38400hz系统时钟后,能够进行输出打印了,但是在9600波特率下仍会有数据中断接收乱码情况,得降到2400波特率下数据接收才正常。但是后续使用的蓝牙模块最低的波特率配置是9600,请教下大家应该如何解决在9600波特率下正常接收中断数据。

//9600波特率接收乱码情况


//2400波特率接收正常情况

wubangmi 发表于 2024-10-30 17:28

上来先批评你,不要死脑筋,大家都告诉你不能用了你就不要继续掉坑里去,要听劝。

L110不能用外部32768作为低功耗串口的时钟源,不然误码率大根本收不到正确的数据,如果你用的外部低频晶振是38400HZ的,那你可以用。

当然低功耗串口最大的波特率也不能超过9600,波特率再往上,就用不了啦,至于为什么用不了是有关串口时钟源和采样1bit用几个clock的问题,这里不讨论。

给你的建议就是外部挂一个32768的晶振,内部38400的晶振也使能,低功耗串口用内部38400作为时钟源。把L110的时钟校准模块(clktrim)用起来,在你需要的时间节点校准一次内部的38400,保你平安无事。

tax2r6c 发表于 2024-11-11 23:46

你好!在HC32L110C6UA芯片上使用外部低速32.768kHz系统时钟配置串口波特率为9600时,确实会遇到较大的误差问题。

lix1yr 发表于 2024-11-12 07:37

由于32.768kHz时钟频率较低,直接用于配置9600波特率会导致较大的误差率(约44%),这通常会导致通信不稳定。

p0gon9y 发表于 2024-11-12 08:23

HC32L110C6UA芯片内部有一个高频时钟(如HRC或LRC),可以用来配置串口波特率。虽然这会增加功耗,但可以确保波特率的准确性。

q1d0mnx 发表于 2024-11-12 09:33

如果外部条件允许,可以使用一个外部高频时钟(如32MHz)来配置串口波特率。这样可以确保波特率的准确性,同时降低误差。

q1ngt12 发表于 2024-11-12 11:41

如果必须使用32.768kHz时钟,可以考虑使用分频器来调整时钟频率,使其更接近9600波特率所需的频率。例如,可以将32.768kHz分频为16.384kHz,然后再进行进一步的分频。

liu96jp 发表于 2024-11-12 12:48

如果蓝牙模块支持其他波特率,可以尝试调整波特率,使其更接近32.768kHz时钟的倍数。例如,尝试使用4800或19200波特率,看看是否能满足需求。

cen9ce 发表于 2024-11-12 13:55

在HC32L110C6UA芯片上使用外部低速32.768kHz时钟配置串口波特率为9600时,误差较大,通常会导致通信不稳定。建议使用内部高频时钟(如HRC)或外部高频时钟来配置串口波特率,以确保波特率的准确性。如果必须使用32.768kHz时钟,可以考虑使用分频器或调整波特率,使其更接近32.768kHz时钟的倍数。

ex7s4 发表于 2024-11-12 14:11

我觉得不行吧,你还是换成内部的高速时钟吧

lamanius 发表于 2024-11-12 16:16

我觉得用个外部的高精度晶振应该也是可以的啊

su1yirg 发表于 2024-11-12 19:11

其实就是误码率比较大,你要是能接受,其实我也不建议,因为根本不稳定

慢动作 发表于 2025-1-31 11:51

据华大例程修改为使用38400hz系统时钟后,能够进行输出打印了

突然下起雨 发表于 2025-2-25 15:30

你提到在2400波特率下能够正常接收数据,这是因为误差相对较小,数据接收更加稳定。

suncat0504 发表于 2025-2-26 22:53

蓝牙模块可以调整波特率吧?误差大,还要用9600,你就不担心数据收发不稳定带来的问题?

地瓜patch 发表于 2025-2-28 12:25

波特率一般由主时钟经过一系列分频得到

gejigeji521 发表于 2025-2-28 15:06

要看选择的时钟下的波特率误差有多大。

gejigeji521 发表于 2025-2-28 15:06

选择一个误差小的时钟频率比较合适。

12345QWERASDF 发表于 2025-6-12 16:09

可以发下修改的代码吗,我就是使用外部32.768K的时钟,不不知道配置是否正确,因为使用串口的时候没有打印出数据,邮箱2328744952@qq.pom,谢谢
页: [1]
查看完整版本: 华大HC32L110C6UA系统时钟频率和串口波特率问题请教