lezjin 发表于 2024-5-10 09:04:46

STC8H 关于频率的小疑问

8H 的运行时钟频率,是不是就是在下载时候,软件上选择的频率?

程序代码中这个宏定义,只是为了计算延时等定义的,并不是真实的运行频率。
代码中的这个宏定义和下载的是不一样,只是延时函数或者其它计算上有差别。
#define MAIN_Fosc                24000000L

神农鼎 发表于 2024-5-10 09:14:13

这只是1个宏定义,宏声明,方便你通知编译器帮你计算,定时器,串行口的处置

lezjin 发表于 2024-5-10 10:06:57

神农鼎 发表于 2024-5-10 09:14
这只是1个宏定义,宏声明,方便你通知编译器帮你计算,定时器,串行口的处置 ...

嗯,我看ARM在配置系统时钟的时候,是在代码中配置的,                        
8H的在看库函数的时候,发现这个好像就是个宏定义,计算延时函数等用到的。
真正的时钟频率,是下载的时候软件选择的时钟频率。
这样理解是对的吧。

xxxevery 发表于 2024-5-10 10:12:10

软件上选择的频率是使用内部RC振荡器时的运行频率,最好与#define MAIN_Fosc语句设定的一致,否则会造成定时不准、串口波特率不对等问题

soma 发表于 2024-5-10 15:52:10

ARM大部分是8m晶振和32.768一起都焊,还有内部rc振荡,但是都是一个频率,通过pll来控制频率,stc就那几个频率选,但也可以pll升降频了。

晓飛飛 发表于 2024-5-10 23:04:40

soma 发表于 2024-5-10 15:52
ARM大部分是8m晶振和32.768一起都焊,还有内部rc振荡,但是都是一个频率,通过pll来控制频率,stc就那几个 ...

有一点不太认同,STC的频率是可以在1MHz~芯片最大时钟频率范围内自由编辑设置的,比如5.678MHz,并不是固定几个档位。而且还支持程序追频,单片机在工作状态下动态的调整IRC时钟的频率。

lezjin 发表于 2024-5-11 07:48:58

xxxevery 发表于 2024-5-10 10:12
软件上选择的频率是使用内部RC振荡器时的运行频率,最好与#define MAIN_Fosc语句设定的一致,否则会造成定 ...

明白了,谢谢

_奶咖君_ 发表于 2024-5-11 13:15:52

晓飛飛 发表于 2024-5-10 23:04
有一点不太认同,STC的频率是可以在1MHz~芯片最大时钟频率范围内自由编辑设置的,比如5.678MHz,并不是固 ...

自由啊,,不太自由,,
确实是可以改,但是需要使用   专业的设备 校准。自己在程序里面调出来一个想要的频率,也不是所有的但单片机都支持,,
相比于修改PLL调整倍频数来获得想要的系统时钟要麻烦,,

Yim_Hom 发表于 2024-5-11 22:03:49

#define main_fosc 24000000L仅仅用于计算,计算时用main_fosc。时钟频率用软件设置或者用专门修改时钟频率的函数修改。
页: [1]
查看完整版本: STC8H 关于频率的小疑问