怎么把stm32f103c8t6配置的72M时钟改为32M时钟
时间: 2023-10-01 14:04:29 浏览: 48
为了将STM32F103C8T6配置的时钟从72MHz改为32MHz,可以按照以下步骤进行操作:
1. 首先,需要打开RCC外设的时钟控制寄存器(RCC_CR)。
2. 然后,将PLLON位清零,以关闭PLL。
3. 接下来,设置预分频器PLLMUL的值为2,将外部时钟源(HSE)的频率除以2,得到16MHz。
4. 在RCC_CFGR寄存器中,将PLLSRC位设置为HSE/2,以将HSE/2作为PLL输入。
5. 将PLL倍频因子PLLMUL设置为4,将输入频率(16MHz)乘以4,得到32MHz。
6. 最后,设置PLLON位为1,以使PLL重新开始工作。
7. 等待PLL稳定后,再将主时钟(MCO)设置为PLLCLK (即32MHz)。
相关问题
代码实现把stm32f103c8t6定时器时钟改为32M
要将STM32F103C8T6定时器的时钟改为32M,可以通过修改系统时钟源和分频系数来实现。具体步骤如下:
1. 打开RCC时钟控制寄存器(RCC_CR)和RCC配置寄存器(RCC_CFGR)。
2. 将系统时钟源改为外部晶体振荡器(HSE)。通过设置RCC_CFGR寄存器的SW位为10,将系统时钟源切换到HSE。
3. 配置HSE的倍频系数。通过设置RCC_CFGR寄存器的HPRE位,将HSE的倍频系数设置为1,即不分频。
4. 配置PLL倍频系数。通过设置RCC_CFGR寄存器的PLLM和PLLN位,将PLL倍频系数设置为16。
5. 使能PLL。通过设置RCC_CR寄存器的PLLON位,使能PLL。
6. 等待PLL稳定。通过查询PLLRDY位,判断PLL是否稳定。
7. 将PLL作为系统时钟源。通过设置RCC_CFGR寄存器的SW位为11,将PLL作为系统时钟源。
8. 等待PLL成为系统时钟源。通过查询SWS位,判断PLL是否成为系统时钟源。
9. 配置定时器时钟分频系数。通过设置TIMx_PSC寄存器,将定时器时钟分频系数设置为32。
以上是将STM32F103C8T6定时器时钟改为32M的步骤。请根据具体情况进行代码实现。
stm32f103c8t6内部64m时钟工作原理
STM32F103C8T6芯片内部的64M时钟是由PLL(锁相环)电路产生的。PLL电路将输入的晶体振荡器频率倍频,从而产生高频时钟信号。具体来说,STM32F103C8T6芯片内部的时钟电路包括以下几个部分:
1. 外部晶体振荡器:STM32F103C8T6芯片需要外部连接一个晶体振荡器,用于提供基准时钟信号。
2. 内部RC振荡器:当外部晶体振荡器失效时,STM32F103C8T6芯片可以使用内部RC振荡器作为备用时钟源。
3. PLL电路:PLL电路将外部晶体振荡器的频率倍频,从而产生高频时钟信号。STM32F103C8T6芯片的PLL电路可以产生最高达72MHz的时钟信号。
4. 分频器:分频器可以将高频时钟信号分频,从而得到低频时钟信号。STM32F103C8T6芯片的分频器可以将时钟信号分频为1、2、4、8、16、64或者128等不同的倍数。
总之,STM32F103C8T6芯片内部的时钟电路非常复杂,但是它可以提供高精度、高稳定性的时钟信号,为芯片的正常工作提供了保障。