找回密码
 立即注册
查看: 171|回复: 8

STC32G的CLKSEL寄存器的0,1和2,3位功能有什么不同

[复制链接]
已绑定手机

1

主题

3

回帖

15

积分

新手上路

积分
15
发表于 2026-9-22 15:32:20 | 显示全部楼层 |阅读模式
STC32G手册里,CLKSEL寄存器的0,1和2,3位功能描述一样,这里有什么不同
回复

使用道具 举报 送花

已绑定手机

872

主题

1万

回帖

2万

积分

管理员

积分
25432
发表于 2026-9-22 15:44:56 | 显示全部楼层
截图202609221544403735.jpg
回复

使用道具 举报 送花

已绑定手机

872

主题

1万

回帖

2万

积分

管理员

积分
25432
发表于 2026-9-22 15:45:14 | 显示全部楼层

好的,我已经查到了 STC32G 手册「时钟管理」章节中 CLKSEL 寄存器的完整定义。这里给这位坛友(以及看到此贴的朋友)做一个明确解答。

问题解答:CLKSEL 的 B1/B0 与 B3/B2 到底有什么不同?

先直接给结论:这两组不是"功能一样",而是两级串联的时钟选择开关,级别和优先级不同。 位描述文字看着相似,是因为它们确实是"同一类动作(选时钟源)",但作用的对象不一样。

1. CLKSEL 寄存器的实际位分配

符号 地址 B7 B6 B5 B4 B3 B2 B1 B0
CLKSEL 7EFE00H CKMS HSIOCK - - MCK2SEL[1:0] MCKSEL[1:0]
  • B1、B0:MCKSEL[1:0] —— 低位组
  • B3、B2:MCK2SEL[1:0] —— 高位组

2. 两者的本质区别

MCKSEL[1:0](B1、B0)—— 选择"基础时钟源"

MCKSEL[1:0] 主时钟源
00 内部高精度IRC
01 外部高速晶振
10 外部32KHz晶振
11 内部32KHz低速IRC

MCK2SEL[1:0](B3、B2)—— 选择"最终主时钟 MCLK"

MCK2SEL[1:0] 主时钟源
00 MCKSEL 选择的时钟源
01 内部 PLL 输出
10 内部 PLL 输出 / 2
11 内部 48MHz 高速 IRC

3. 关键:B3/B2 的 "00" 才指回 B1/B0

看 MCK2SEL 的 00 项写的是"MCKSEL 选择的时钟源"——这就是两组的联系与区别所在:

  • MCKSEL(B1、B0):先把 4 个候选基础时钟源(内部高精度IRC / 外部高速晶振 / 外部32K晶振 / 内部32K低速IRC)选出一个。
  • MCK2SEL(B3、B2):决定最终主时钟 MCLK 是"用上面选出来的那个基础时钟",还是"绕过它改用 PLL 或内部 48MHz 高速IRC"。

也就是说:

  • 当 MCK2SEL = 00 时,B1/B0 的设置才生效,MCLK = MCKSEL 选中的时钟源;
  • 当 MCK2SEL = 01/10/11 时,MCLK 直接取 PLL 输出、PLL/2 或 48MHz 高速IRC,此时 B1/B0 的选择对 MCLK 已不起作用。

所以这两组是"候选源选择"与"最终源选择"的关系,并不是重复定义。描述文字相近,是因为 MCK2SEL 的 00 档正好要引用 MCKSEL 的结果。

4. 补充说明

  • 到这里选出来的还只是 主时钟 MCLK。系统时钟 SYSCLK 还需要经 CLKDIV 寄存器再分频(SYSCLK = MCLK/CLKDIV),这一级别漏了。
  • 另外 CKMS(B7)是选 PLL 输出 96MHz 还是 144MHz,HSIOCK(B6)是选高速 I/O 时钟源,这两个跟 B3/B2、B1/B0 是并列的不同功能,别混在一起看。

一句话总结:B1/B0 选"用哪个基础时钟",B3/B2 选"最终 MCLK 到底用基础时钟还是 PLL/48M高速IRC",后者为 00 时才用到前者。

如果您在实际配置中遇到 MCLK 没切换到预期频率的情况,可以把您写的 CLKSEL 赋值和期望频率发出来,我帮您核对一下。

信息来源:STC32G 系列手册「时钟管理,芯片上电工作过程,外部晶振抗干扰」章节之系统时钟选择寄存器(CLKSEL)。


🔍 搜索 "STC 单片机 论坛 帖子"

⏱️ 查找用时 4.6s | 总回答用时 9.7s

回复

使用道具 举报 送花

已绑定手机

1

主题

3

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2026-9-22 15:49:56 | 显示全部楼层
明白了,还有个问题问下,PLL倍频怎么选择通过外部晶振倍频呢,手册里也没看到相关设置项,难道只能通过内部频率倍频吗

点评

启动外部晶振,选择外部晶振即可。  详情 回复 发表于 2026-9-22 16:05
回复

使用道具 举报 送花

83

主题

8317

回帖

1万

积分

超级版主

积分
17932
发表于 2026-9-22 16:05:46 | 显示全部楼层
wx_a*** 发表于 2026-9-22 15:49
明白了,还有个问题问下,PLL倍频怎么选择通过外部晶振倍频呢,手册里也没看到相关设置项,难道只能通过内 ...

启动外部晶振,选择外部晶振即可。
回复

使用道具 举报 送花

已绑定手机

1

主题

3

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2026-9-22 16:12:05 | 显示全部楼层
PLL哪里可以选择外部晶振,没看见设置寄存器。
回复

使用道具 举报 送花

已绑定手机

1

主题

3

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2026-9-22 16:16:42 | 显示全部楼层
梁*** 发表于 2026-9-22 16:05
启动外部晶振,选择外部晶振即可。

USBCLK寄存器只有PLL时钟源选择/1,/2,/4,/8,这个时钟源都是来自内部时钟吗

点评

请仔细看一下时钟: [attachimg]149162[/attachimg]  详情 回复 发表于 2026-9-22 22:20
回复

使用道具 举报 送花

已绑定手机

872

主题

1万

回帖

2万

积分

管理员

积分
25432
发表于 2026-9-22 20:04:29 | 显示全部楼层
1,直接看手册;
2,直接问 STC AI助手: https://help.stcaimcu.com/
回复

使用道具 举报 送花

83

主题

8317

回帖

1万

积分

超级版主

积分
17932
发表于 2026-9-22 22:20:26 | 显示全部楼层
wx_a*** 发表于 2026-9-22 16:16
USBCLK寄存器只有PLL时钟源选择/1,/2,/4,/8,这个时钟源都是来自内部时钟吗 ...

请仔细看一下时钟:

截图202609222220215632.jpg
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-11-8 02:49 , Processed in 0.074824 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表