[学习日记]CW32时钟配置

CW32时钟配置

今天研究了一会儿,结果发现B站武汉芯源半导体官方有写文章讲如何配置参考链接
CW32F030和CW32L083的配置方法是一样的
CW32系统内部时钟树

这个时钟树和STM32的比起来确实要好理解多了,我觉得这个适合初学者了解怎样配置时钟。
简单的配置来使用就只需要看上面一段,不用看下面那一大截,这样就好看多了。
时钟源输入部分
首先可以看到图最左边External Crystal 分别为外部低速时钟(LSE)和外部高速时钟(HSE)的接口这里分别对应引脚PC14 / PC15 和 置 PF00/PF01。接着一路一路的看。
第一路 LSE:输入频率为32.768KHz。
第二路LSI:输入频率32.8KHz.
第三路PLL:它的输入可由HSI分频以及HSE提供。
第四路HSI:输入频率为32M-48MHz,再经过分频器分频。
第五路HSE:输入频率为4-32MHz。
使用时选择其中一路作为时钟源输入,通过选通器进行选择,选通过后再由系统时钟分频器进行分频得到系统时钟。
系统默认上电使用的是HSI经过6分频后得到8MHz,再切换到用户设置的时钟频率进行工作。

代码

下面是我配置的使用通过HSE作为输入通过PLL倍频得到的72MHz系统时钟的代码。
其中需要注意的是CW32F030 内部的 FLASH 存储器支持最快 24MHz 频率的操作时钟,当配置的 HCLK 频率大于 24MHz 时,需通过 FLASH 控制寄存器 FLASH_CR2 的 WAIT 位域来配置插入的等待 HCLK 周期个数,配置规则如下表所示:

FLASH_CR2.WAIT取指周期等待 HCLK 周期个数HCLK 频率
0001个<= 24MHz
0012个> 24MHz ,且 <= 48MHz
0103个> 48MHz ,且 <= 72MHz
void SystemInit(void)
{
	RCC_HSE_Enable(RCC_HSE_MODE_OSC, 8000000, RCC_HSE_DRIVER_LEAST, RCC_HSE_FLT_CLOSE);	//使能HSE输入
	RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_FLASH, ENABLE);//使能FLASH时钟
	RCC_PLL_Enable(RCC_PLLSOURCE_HSEOSC, 8000000, RCC_PLL_MUL_9);//PLL输出 = 输入 * 倍频数 = 8M * 9 = 72MHz
	FLASH_SetLatency(FLASH_Latency_3);//24<f≤48 ---> Flashwait = 2  48<f ---> Flashwait = 3
	RCC_SysClk_Switch(RCC_SYSCLKSRC_PLL);	//切换系统时钟到PLL时钟
	RCC_SystemCoreClockUpdate(72000000);//更新系统时钟频率
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余十三_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值