4M的外部时钟怎么设置STM32系统时钟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4M的外部时钟怎么设置STM32系统时钟相关的知识,希望对你有一定的参考价值。

是4M外部晶振

参考技术A 一样的设置方法,你用8M怎么设置的,就按照步骤,怎么设置4M,只不过是时钟源的数值不一样罢了,这有什么关系呢?
只不过,用8M外部时钟源的时候,倍频9倍,可以得到72MHZ系统时钟,
外部4M时,最大只能得到64M时钟,因STM32最大只能倍频16倍,所以你只能得到64M时钟而已追问

我的是3.50版本的库,系统自动调用SystemInit();函数,可我在函数里面直接改
写USART函数得到的波特率有问题。

追答

你调用SystemInit();肯定不对了,要自己配置时钟,因为你的外部晶振不是8M.

系统给出的函数SystemInit()。在调用前需要进行一些宏定义的设置,具体的设置在system_stm32f10x.c文件中。
文件开头就有一个这样的定义:
//#define SYSCLK_FREQ_HSE HSE_Value
//#define SYSCLK_FREQ_20MHz 20000000
//#define SYSCLK_FREQ_36MHz 36000000
//#define SYSCLK_FREQ_48MHz 48000000
//#define SYSCLK_FREQ_56MHz 56000000
#define SYSCLK_FREQ_72MHz 72000000

ST 官方推荐的外接晶振是 8M,所以库函数的设置都是假定你的硬件已经接了 8M 晶振来运算的

现在你的外晶振不是8M的,不要调用SystemInit()

CubeMX配置STM32F030F4,怎么输入外部时钟不可以配置,暗下去的

STM32系统的时钟一般有三种HSI,内部高速时钟,默认8MHZ,如果你的程序不做任何处理,系统默认的就是8MHz,还有外部晶振或者外部时钟,普通型最大不超过16MHz,互联型不超过25MHz,还有一个PLL,从HSI或者HSE里吸取时钟,倍频成最大72MHz综述,如果你的程序不做任何处理,就是8MH是 参考技术A TIMx需要工作在从模式下,从外部触发计数。
通过TIM_SelectInputTrigger(TIMx, TIM_TI1F_ED)可以选择CH1管脚作为输入。也可以选择CH1或CH2的滤波输入。在从模式下,CH3和CH4不能作为外部触发管脚。本回答被提问者采纳

以上是关于4M的外部时钟怎么设置STM32系统时钟的主要内容,如果未能解决你的问题,请参考以下文章

mdk硬件仿真STM32 怎么查看当前系统时钟

STM32中,systick具体延时时间怎么计算的?

STM32里的外设时钟是干啥?

CubeMX配置STM32F030F4,怎么输入外部时钟不可以配置,暗下去的

STM32的MIPS有多少呢?时钟为72MHz时为72MIPS

STM32如何设置10ns的延时