数字来源下面,go to define就能找到 再对照一下,这个说明还没改过来
重点来了:进过上面那些参数配置,各外设时钟配置成多少了? 使用stm32CubeMX直观了解一下: 首先打开RCC时钟,使能外部晶振作为时钟,才能修改
硬件接的是8M外部晶振,这改为8 修改时发现 PLL_Q 是灰色的,改不了 需要修改USB,这个时钟是USB的 最终结果: 可看到定时器3所在总线是APB1,84M, 飞控利用这个定时器生成驱动电调的PWM 验证定时器3时钟,频率84M
添加以下代码(注意代码放的位置)再调试: uint32_t SysClockFreq=0; uint32_t PCLK2Freq=0; uint32_t PCLK1Freq=0; uint32_t HCLKFreq=0; SysClockFreq=HAL_RCC_GetSysClockFreq(); PCLK2Freq=HAL_RCC_GetPCLK2Freq(); PCLK1Freq=HAL_RCC_GetPCLK1Freq(); HCLKFreq=HAL_RCC_GetHCLKFreq(); 先初始化为0,便于观察 在运行完HAL_Init();之后,进入SystemClock_Config();函数前:
说明HAL_Init();初始化时,对时钟有做操作,都初始化为16M,简单初始化一下
运行完SystemClock_Config();函数后:
说明这个时候才按要求真正的初始化好了时钟
定时器挂载在不同总线:
类似可看我这篇,做个对比 MiniFly Firmware V1.1开源四轴代码分析七:系统时钟