跟着韦东山老师学习STM32_HAL库随记(第一天)
1.使用STM32cubeMX配置工程项目
1.1什么是STM32cubeMX?
STM32CubeMX 是意法半导体(STMicroelectronics)官方推出的免费可视化配置工具,专门用于STM32微控制器的初始化和代码生成。它具有以下功能:
a.图形化引脚配置
可视化芯片引脚布局,点击即可分配功能
自动检测引脚冲突(如两个外设使用同一引脚)
支持引脚重映射、复用功能配置
b. 外设驱动初始化
配置GPIO、USART、I2C、SPI、ADC、定时器等所有外设
自动生成底层初始化代码(基于HAL库或LL库)
设置外设参数(波特率、时钟分频、工作模式等)
c. 时钟树配置
可视化配置系统时钟、外设时钟
实时显示时钟频率,自动计算分频系数
确保时钟配置不超过芯片最大频率
d. 项目管理
创建新工程,选择芯片型号
设置IDE(Keil、IAR、STM32CubeIDE等)
管理项目文件结构和编译选项
e. 中间件集成
集成FreeRTOS、FATFS、USB协议栈等
配置中间件参数
自动生成初始化代码
简化复杂协议栈的移植
1.2怎么使用STM32cubeMX
1.2.1创建STM32F103C8T6项目
首先基于MCU创建我的项目(图中标注所示)。

然后在左上角选择编号为STM32F103C8T6,双击右下角的C8T6。
系统会自动的开始生成C8T6微控制器界面

图中显示的是一块基于LQFP48封装的C8T6微控制器
左侧是一些外设配置接口:
系统核心 - 包含GPIO、时钟、中断、DMA等基础系统配置
模拟 - ADC、DAC、比较器等模拟外设配置
定时器 - 各种定时器、PWM、编码器接口等
通信接口 - USART、I2C、SPI、USB、以太网等通信协议
计算单元 - CRC、加密模块等专用计算单元
中间件与软件包 - FreeRTOS、FATFS、USB协议栈等高级软件组件
点击左侧的GPIO,然后点击微控制器中的PC13,会弹出该引脚的配置模式,这里选择GPIO_Output(推挽输出模式),然后点击左上角的GENERATE CODE进行项目创建。

在设置的文件地址中会有一个文件夹
使用keil5进行打开,打开顺序如图中路径所示

2.在keil5中进行代码编写
在keil5中打开GPIO.C文件,可以看到文件中已经配置好了PC13引脚的输出模式

现在要对STM32进行点灯操作,查看C8T6PCB原理图可知,LED灯的压降为0.7V,当PC13引脚输出高电平(3.3V),LED会变亮,当PC13引脚输出低电平(0V),LED会熄灭。所以在代码中需要配置PC13引脚的电平为高电平。

在main.c文件中编写代码,代码如下:
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
HAL_Delay(500);
/* USER CODE BEGIN 3 */
}
烧录程序,就可以在开发板上看到LED灯一亮一灭的效果了。
3.注意事项:
每次在STM32cubeMX中配置项目,都会初始化文件,所以自己编写的代码必须在BEGIN到END之间,这个区间内,是系统留出的用户代码位置,这样在STM32cubeMX中间配置项目,就不会初始化掉自己的代码。
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
以上便是第一天所学的内容,个人感觉韦东山老师讲的特别细致,思路很清晰,理解起来比较简单。











