
5.3 配置工程文件 默认情况下会进入“LEDTest_Project.ioc”界面,也可以通过双击工程目录的“LEDTest_Project.ioc”进入。点击“Project Manager->Code Generator”,将“Generated files”第1和第2选项勾选,其余默认。+ v! O6 m( T3 y" U8 P( L1 n, e ![]() 5.4 配置芯片时钟 @) X' _( x, U- S! v 5.4.1 配置外部时钟引脚 点击“Pinout & Configuration->System Core->RCC”,在“RCC Mode”中将“High Speed Clock(HSC)”设置为“Crystal/Ceramic Resonator”,其余保持默认。 ![]() 4 n$ b. L# L& _" J4 s. d7 _ 第一个选项High Speed Clock即为HSE(高速时钟源),一般为接外部晶振为主,因此选择Crystal/Ceramic Resonator(使用晶振/外部陶瓷振荡器)来使用外部晶振。( D# x0 H0 S. j. a3 n) _/ a 第二个选项Low Speed Clock(低速时钟源)若无特殊需求,不用打开。 第三个选项以及第四,五,六个选项用是用来配置MCO1、MCO2和PC9引脚是否要作为时钟输入脚来使用,无特殊需求不用打开。 配置好晶振设置后可以看到右边芯片实时会显示引脚状态已改变。/ t. e& ?7 a1 _0 X 5.4.2 配置时钟频率! A+ M2 G% w) G/ k 本指南使用的STM32H743II芯片,最大CPU时钟可以配置到480MHZ,外部晶振是25MHZ。点击“Clock Configuration”,在“Input Frequency”输入“25”,在“PLL Source Mux”选择“HSE”作为时钟输入,在“System Clock Mux”选择“PLLCLK”作为时钟输入,在“SPI1,2,3 Clock Mux”输入“480”,然后按下回车键,软件自动计算设置好其他选项,目前时钟配置只需要满足跑马灯实验,其他暂不设置,保持默认。3 I6 B+ C6 i0 n ![]() 5.4.3 时钟图介绍 本章节不涉及操作,可以忽略跳过。 STM32CubeIDE专门为时钟系统分频单独建了一套配置体系,在主界面点击“Clock Configuration”即可进入时钟树配置界面。由于该部分没有汉化因此单独介绍。 ![]() ; K; a# O3 Y, l 简单介绍一下时钟树中各个整体的名称以及内容:) j/ ^& d0 v5 v% M( v: C7 w ! j2 ~- a! E+ a# Y2 q ![]() ①:低速时钟源,包括LSI和LSE两个,LSI属于STM32H7内部低速时钟源,频率约为32Khz。LSE则是外部低速时钟源,为32.768Khz(使用32.768Khz外部晶振)。这两个时钟源一般用于看门狗和RTC。 ②:高速时钟源,包括:HSE、HIS、CSI和HSI48。HSE是外部高速时钟,由于使用了25M的外部晶振,所以HSE频率为25Mhz;HSI是内部高速时钟,频率为 64Mhz; CSI是低功耗内部时钟,频率为4Mhz;HSI48是内部高精度时钟源,频率为 48Mhz,配合CRS可以直接作为USB的时钟源使用。; A9 d$ C- j8 b) ~ E ③:PLL1~3的时钟源选择器,一般选择PLL时钟源来自HSE_ck, 25Mhz。 ④:sys_ck时钟选择器,可选择sys_ck的时钟来自:HSI_ck、CSI_ck、HSE_ck 或pll1_p_ck等,在PLL1还没设置好的时候,系统默认是选择hsi_ck(64Mhz)作为时钟源的,当PLL1配置好以后,则系统时钟可以切换为plll1_q_ck(480Mhz),以得到最高性能。 ⑤:PLL1 锁相环,该 PLL 主要用到两路输出: pll1_p_ck 和 pll1_q_ck,其中: pll1_p_ck一般用于 sys_ck 的时钟源,最终作为 CPU、 SysTick、 AXI、 AHB1~4 和 APB1~4 等的时钟源;而 pll1_q_ck 则可以通过 PKSU 选择作为部分外设的内核时钟( perx_ker_ck),如 FMC、 QSPI、SDMMC1/2 等。; I# W( s6 e+ A. \ ![]() 假设外部晶振为25Mhz,若需要得到400Mhz的pll1_p_ck频率,则可以设置:DIVM1=5,DIVN1=160,DIVP1=2即可。其他分频输出(pll1_q_ck/pll1_r_ck)计算方法与上式相似。# r$ u* y9 S; k. n3 }6 y4 b4 { ⑥:SCGU(System Clock Generation Unit,系统时钟生成单元)以及SCEU(System Clock Eable Unit,系统时钟使能单元)于将sys_ck分成各种时钟频率,用于使能各个外设、总线等,如:CPU 频率、SysTick、AXI、AHB14和APB14 等。# i. [6 {( N% a( l# X2 H ⑦:PKSU(Peripheral Kernel clock Selection Unit,外设内核时钟选择单元)以及PKEU(Peripheral Kernel clock Enable Unit,外设内核时钟使能单元),用于选择部分外设的内核时钟源以及用于使能部分外设的内核时钟,STM32H7内部很多外设都可以自由选择内核时钟来源,从而提高灵活性,详见《STM32H7xx 参考手册》 335 页, Table 51。 ![]() & a$ q6 g& s4 D, Q/ [; p) @ 此图片频率400为方便讲解设置,实际还是按最大频48MHZ来设置!/ w/ [2 e, K' H; R' O ①:Input frequency:输入晶振频率,在这个选项中可根据单片机的外部晶振来填写晶振频率,下面的蓝色范围为可接受频率范围。这边按25MHZ来配。2 g) D9 i) k) W3 \ ②:PLL source Mux:PLL时钟源选择器,选择HSE高速时钟源即可。 ③:PLL 分频系数 M 配置。由于我们需要系统时钟设为480MHZ,因此需要通过PLL分频来把25MHZ的晶振时钟转换为系统时钟。 ④:主 PLL 倍频系数 N 配置。倍频系数 N(自动配频会自动计算)2 L7 u% J( |$ W3 z( h1 j; d& j6 ` ⑤:主 PLL 分频系数 P 配置。分频系数 P(自动配频会自动计算)% l% }( N4 I, S9 S ⑥:系统时钟时钟源选择,选择PLLCLK,系统时钟就会和PLL同步为480MHZ( [, \( `5 f* n# g6 e' [ ⑦,⑧:SYSCLK系统时钟,引脚的工作频率都由它分频来配置。 6 Y3 [: B" H: {4 P: n ![]() _# D! K' j( O8 i 系统时钟分频得到的总线时钟:AHB(Advanced High performance Bus,高级高性能总线,用于高性能模块CPU、DMA、DSP之间的连接)、APB1、APB2、APB3和APB总线时钟(Advanced Peripheral Bus,高性能外围总线,用于低带宽的周边外设之间的连接,例如UART)以及Systick时钟的最终来源都是系统时钟SYSCLK。( @# Q7 S2 x- O" k |
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【2025·STM32峰会】GUI解决方案实训分享2-编译运行TouchGFX咖啡机例程(含桌面仿真)
实战经验 | Keil工程使用NEAI库的异常问题
基于定时器捕获测量脉宽的应用示例
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
狂欢三】STM32C031使用TIM定时器DMA方式实现WS2812彩灯输出(三)
【狂欢三】STM32C031使用TIM定时器DMA方式实现PWM输出(二)
【狂欢三】STM32C031使用TIM定时器PWM输出