STM32CubeMX 配置 STM32F407时钟树和烧录方式

时钟树

STM32CubeMX 配置 STM32F407时钟树和烧录方式_第1张图片
要先把High Speed Clock设置为外部晶振,再去设置时钟树
STM32CubeMX 配置 STM32F407时钟树和烧录方式_第2张图片
PLL选用高速外部时钟线(HSE)
Input frequency 数值为外部晶振,大多开发板上为8M
SYSCLK 为系统时钟,F407为168MHz
APB2 外设时钟线为系统时钟的一半
APB1 外设时钟线为 APB2系统时钟线的一半

输入参数后,回车,软件会自动更改所有配置

配置调试模式

STM32CubeMX 配置 STM32F407时钟树和烧录方式_第3张图片

选择 DebugSerial Wire
SW调试模式只需要四根线,3.3V、GND、SWCLK、SWDIO


TimeBase Source 裸机选择 SysTick,OS 选择 TIM1 作为HAL库的时基(除了 SysTick 外都可以)

在基于STM32 HAL的项目中,一般需要维护的 “时基” 主要有2个:

1、HAL的时基,SYS Timebase Source
2、OS的时基(仅在使用OS的情况下才考虑)
而这些 “时基” 该去如何维护,主要分为两种情况考虑:

裸机运行:
可以通过 SysTick(滴答定时器)或(TIMx)定时器的方式来维护 SYS Timebase Source,也就是HAL库中的 uwTick,这是HAL库中维护的一个全局变量。在裸机运行的情况下,我们一般选择默认的 SysTick(滴答定时器)方式即可,也就是直接放在 SysTick_Handler() 中断服务函数中来维护。

带OS运行:
前面提到的 SYS Timebase Source 是STM32的HAL库中的新增部分,主要用于实现 HAL_Delay() 以及作为各种 timeout 的时钟基准。

在使用了OS(操作系统)之后,OS的运行也需要一个时钟基准(简称“时基”),来对任务和时间等进行管理。而OS的这个 时基 一般也都是通过 SysTick(滴答定时器)来维护的,这时就需要考虑 “HAL的时基” 和 “OS的时基” 是否要共用 SysTick(滴答定时器)了。

因而建议:裸机选用SysTick,OS选用TIM1 作为HAL的时基

你可能感兴趣的:(STM32,stm32,嵌入式硬件,单片机,STM32CubeMX)