STM32初学之时钟配置及项目生成(STM32CubeMX)
前言
代码生成软件:STM32CubeMX
开发板:robomaster C型开发板(STM32F407IGH6)
一、时钟配置
1 芯片选择
打开STM32CubeMX,选择自己的芯片版本,这里以STM32F407IGH6为例。
2 SYS配置
在SYS中配置使用SWD调试,在Debug选择Serial Wire。
3 RCC配置
在RCC中设置HSE为Crystal/Ceramic Resonator,使用高速外部时钟。
4 时钟树配置
时钟树整体配置如下图,下边详细介绍个部分的含义。
上图中1、2、3、4分别表示低速外部时钟、低速内部时钟、高速内部时钟、高速外部时钟。
HSE(High-Speed External Clock,高速外部时钟)
HSE(High-Speed External Clock,高速外部时钟)
HSI(High-Speed Internal Clock,高速内部时钟)
LSE(Low-Speed External Clock,低速外部时钟)
LSI(Low-Speed Internal Clock,低速内部时钟)
上图中5、6、7、8分别表示PLL_M、PLL_N、PLL_P、PLL_Q。
PLL(Phase-Locked Loop,相位锁定环路)
计算公式:
FPLLCLK=(Finput×PLLN)/(PLLM×PLLP)
10为系统时钟
System Clock (SYSCLK) 系统时钟
11为用于生成USB、SDIO、随机数发生器的时钟
也可在指定的时钟位置输入时钟频率,按下回车或者点击上方的“Resolve Clock Issues”选项,是系统自动配置相关参数。
最常用的时钟是APB时钟
下图为外设在时钟总线上的挂载图。在使用相关外设时,通过此图配置相应的时钟频率。该图在MCU的数据手册中可以找到。数据手册官网可查。
配置时需注意的事项
-
时钟频率限制:
- Cortex-M4最大时钟频率为168MHz。
- 注意AHB和APB频率不能超过芯片规格的限制。
-
时钟源优先级:
- HSE通常优先于HSI。
- 如果使用PLL,确保PLL输入频率和输出频率在规定范围内。
-
备份时钟:
- 如果主时钟失效(如HSE晶振故障),系统可以自动切换到备用时钟(HSI)。
二、项目生成
选择Project Manager选项卡,在Project中为项目命名,然后选择项目文件夹放置的位置。之后注意选择合适的IDE。本人使用的是CLion开发环境,选择STM32CubeIDE,如果使用的是Keil开发环境选择MDK-ARM IDE。
然后在Code Generator中勾选Generate peripheral initialization as a pair of '.c/.h' files per peripheral,生成单独的.c/.h文件。然后点击GENERATE CODE。
出现下图所示对话框,说明项目生成完成
作者:no-error