3.5 项目实战:零代码点亮LED
# 3.5 项目实战:零代码点亮LED
下载项目代码: 下载代码
本节将使用STM32CubeIDE通过自动生成代码的方式点亮三色LED的蓝色灯。LED阳极通过1K电阻分别连接PA7(蓝)、PB0(红)、PB1(绿),阴极接地。配置PA7为高电平,PB0/PB1为低电平即可点亮蓝色LED。通过本实验可了解STM32CubeIDE工程文件结构及代码生成机制。
# 3.5.1 STM32CubeMX配置
# 1. 运行STM32CubeIDE
双击桌面STM32CubeIDE图标启动软件:
# 2. 设置工作区间
新建"STM32_Workspace"文件夹(建议在空间充足的磁盘如E盘),设置好路径后点击"Launch":
# 3. 新建工程
① File
→ New
→ STM32 Project
;
② 输入芯片型号"STM32F103C8T6"并选中;
③ 命名工程为"03-Example1"并完成创建:
# 4. 引脚分配
① 进入"Pinout & Configuration"标签页;
② 点击PA7引脚;
③ 设置为"GPIO_Output":
# 5. GPIO配置
①点击“Pinout&Configuration”标签页;
②点击“Categories” ;
③点击“System Core”;
④点击“GPIO”;
⑤点击“PA7”;
⑥设置“GPlO output level”为“High”;
# 6. 生成代码配置
① 进入"Project Manager"
② 点击"Code Generator";
③ 勾选"Generate peripheral initialization as a pair of '.c/.h' files":
# 7. 保存并生成代码
点击保存图标(或按Ctrl+S
)自动生成代码,勾选"Remember my decision"并确认:
生成后的main.c
文件结构:
# 8. 工程文件说明
- Includes文件:Includes的作用是管理项目中的头文件包含路径,确保编译时能正确找到所有必要的头文件,包括HAL库、CMSIS、用户自定义头文件等。
- Core文件夹
- Inc子文件夹:包含所有自动生成的头文件。
- Src子文件夹:包含所有自动生成的源代码文件。
- Startup子文件夹:包含启动文件,通常是汇编文件,扩展名为.s,这些文件负责在程序开始执行时进行一些底层的初始化工作,为后续的C程序运行环境做好准备。
- Drivers文件夹
- CMSIS子文件夹:包含与芯片相关的CMSIS文件。
- STM32F1xx_HAL_Driver 子文件夹:包含HAL库的源代码和头文件。
- .ioc:.ioc文件是STM32CubeMX的配置文件,用于保存芯片的外设配置信息。它包含了芯片的外设设置、时钟配置、引脚设置等信息。
- .ld:.ld文件是链接器脚本文件,其主要作用是定义程序的内存布局和段分配。具体来说,它定义了程序的各个部分,如代码段、数据段和堆栈等,在目标设备内存中的位置和大小。
- Binaries文件:自动生成的Binaries文件夹用于存放编译后生成的二进制文件。
- Debug文件夹:Debug文件夹用于存储编译和调试过程中生成的文件。
- .launch文件:.launch文件的作用主要是用于配置和启动调试会话。
# 9. 代码注释对的作用
用户代码必须写在/* USER CODE BEGIN */
和/* USER CODE END */
之间,否则重新生成代码时会被覆盖。示例如下:
/* USER CODE BEGIN WHILE */
// 用户自定义代码
/* USER CODE END WHILE */
2
3
# 10. 编译下载程序
ST-LINK下载器一端连接电脑,另一端连接至STM32的SWD接口。随后点击绿色小箭头图标即“Run”按钮编译并下载程序。
烧录成功提示:
# 3.5.2 项目验证
蓝色LED点亮效果: