[其他ST产品] STM32CubeMX工程配置说明

[复制链接]
2053|16
 楼主| 鱿鱼丝 发表于 2024-2-29 14:23 | 显示全部楼层 |阅读模式
STM32CubeMX配置1.1 设置时钟

单片机的时钟,相当于人的心跳。只要单片机工作,必须要开启时钟!

STM32单片机共有4个时钟来源:


4543865e0229f505ec.png

HSI和LSI都是内置在单片机中的RC时钟源,在未开启HSE和LSE时,单片机默认使用两个内部时钟源。

高速(HS)时钟和低速时钟(LS)的区别:

  • 高速时钟(HS):是提供给单片机系统内核的主频时钟
  • 低速时钟(LS):是提供给RTC实时时钟功能的
6226565e022afa1fde.png

1.1.1界面说明
6334965e022bc7efc1.png

  • 黄色VBAT:表示不可配置引脚,电源专用引脚以黄色突出显示,其配置不能修改
  • 绿色:表示配置成功
  • 橙绿色NRST:表示配置了一个I/O口的功能,但是没有初始化相对应的外设功能,引脚处于no mode状态
  • 灰色:可配置引脚



 楼主| 鱿鱼丝 发表于 2024-2-29 14:23 | 显示全部楼层
1.1.2开启RCC功能

8193465e022db05494.png

旁路时钟源:具有独立输出时钟脉冲的外围电路,一般指有源晶振
晶体/陶瓷振荡器:无源石英晶体元件或无源RC震荡元件,这些元件不能像有源晶振一样直接输出频率脉冲,只能被动的连接到单片机上,组成单片机的时钟外围电路。
禁用:只能使用HSI或LSI的单片机内部时钟
 楼主| 鱿鱼丝 发表于 2024-2-29 14:23 | 显示全部楼层
1.1.3开启RTC功能

7140165e022ee29338.png

其他的保持默认即可。
 楼主| 鱿鱼丝 发表于 2024-2-29 14:23 | 显示全部楼层
1.1.4配置时钟树
时钟树视图可以分为三部分:时钟输入源、选择器/分频器/倍频器、最终设定的频率
左边的时钟输入源部分:HSE和LSE可以在RCC和RTC功能中开启或关闭,如果开启HSE功能,时钟源4的晶振频率可在4~16MHz之间修改(结合PCB,设置默认的8MHz即可)。
中间的部分:
选择器:可以切换线路连接的开关,可以选择不同的输入信号
分频器:可以将频率数值按比例相除,假如输入的频率为8,经过的分频器为/2,则输出频率则为4
倍频器:将频率数值按比例相乘,假如输入频率为8,经过X9的倍频器,则输出频率为72
 楼主| 鱿鱼丝 发表于 2024-2-29 14:24 | 显示全部楼层
 楼主| 鱿鱼丝 发表于 2024-2-29 14:24 | 显示全部楼层
入门学习可将各功能设置为最大频率,展现出单片机的最高性能,日后涉及到低性能/低功耗要求时,可以随机应变地修改时钟数。

6083465e023129f555.png
 楼主| 鱿鱼丝 发表于 2024-2-29 14:24 | 显示全部楼层
1.2 设置端口
时钟设置好之后,单片机就能按一定频率运行了。

开启时钟功能后,自动完成的端口模式与参数设置:外部晶振输入
4886265e0231fe7de6.png
 楼主| 鱿鱼丝 发表于 2024-2-29 14:24 | 显示全部楼层
1.2.1 引脚模式设置
STM32F103C8T6开发板板载LED:
5659065e0232b18568.png
 楼主| 鱿鱼丝 发表于 2024-2-29 14:24 | 显示全部楼层
设置PC13引脚:
5334965e023344e0cf.png
 楼主| 鱿鱼丝 发表于 2024-2-29 14:25 | 显示全部楼层
1.2.2引脚参数设置
如果端口用于数据通信,可选择High(高速),PWM调光

如果用于不常变化的场合,可选择Low(低速)或中速
7654365e02342ccbe4.png

1.2.3 按开发板电路图设置全部引脚
结合电路原理图的功能进行配置。
 楼主| 鱿鱼丝 发表于 2024-2-29 14:25 | 显示全部楼层
二、电路板载LED
工程配置:

9472465e02358cdb16.png
8540165e0235d8ab1b.png
 楼主| 鱿鱼丝 发表于 2024-2-29 14:25 | 显示全部楼层
选择对应的HAL固件库版本
304665e02368e180b.png
 楼主| 鱿鱼丝 发表于 2024-2-29 14:26 | 显示全部楼层
程序下载和调试配置:
5810365e02374a6460.png
输出代码:
421665e0237eab971.png
6591565e023866c86e.png
 楼主| 鱿鱼丝 发表于 2024-2-29 14:26 | 显示全部楼层
// 在main()函数中添加
while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
    HAL_Delay(100);
  }
  /* USER CODE END 3 */
 楼主| 鱿鱼丝 发表于 2024-2-29 14:26 | 显示全部楼层
三、HAL库的整体结构
4364165e0239b981d6.png

7755065e023a0dd975.png

5529865e023a8b2765.png
ClarkLLOTP 发表于 2024-2-29 16:48 | 显示全部楼层

这个图标的非常详细啊
yiy 发表于 2024-2-29 17:05 | 显示全部楼层
用不同颜色表示不同IO的使用情况确实很容易看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

480

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部