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

时钟树

要先把High Speed Clock设置为外部晶振,再去设置时钟树

PLL选用高速外部时钟线(HSE)
Input frequency 数值为外部晶振,大多开发板上为8M
SYSCLK 为系统时钟,F407为168MHz
APB2 外设时钟线为系统时钟的一半
APB1 外设时钟线为 APB2系统时钟线的一半

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

配置调试模式

选择 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的时基

相关推荐
hongmai6668883 小时前
MP2348GTL-Z:这颗24V/4A同步降压芯片,把性能和体积平衡得恰到好处
c语言·开发语言·arm开发·单片机·5g
笨笨饿4 小时前
#135_代码中的类型重定义艺术:从基础封装到函数类型设计
开发语言·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式实时数据库
西城微科方案开发4 小时前
高精度低功耗胎压计方案——气压表解决方案
单片机·嵌入式硬件
LavaLin016 小时前
STM32H562RGT6 与 STM32F722RET6 规格对比
stm32
VALENIAN瓦伦尼安教学设备6 小时前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法
米饭不加菜6 小时前
一些常用模块简介
经验分享·笔记·嵌入式硬件
佳児素花痴╮7 小时前
STM32U575RIT6(USART)学习
stm32·嵌入式硬件·学习
小+不通文墨8 小时前
使用vscode里的U8G2 库编写OLED菜单控制
经验分享·笔记·单片机·嵌入式硬件·学习
oshan20128 小时前
零基础STM32入门教程--12-I2C 串行通迅
stm32·单片机·嵌入式硬件
Messy create9 小时前
【继续充值】
单片机