一、实验目的及要求
1、熟悉基于HAL库函数开发的方法。
2、熟悉跑马灯的工作原理及硬件电路。
3、通过delay函数的应用实现流水灯的控制。
二、实验内容及原理
通过本实验的学习,将了解到 STM32F103 的 I/O 口作为输出使用的方法。通过代码控制开发板上的 LED 灯: LED0、LED1 交替闪烁,实现类似跑马灯的效果。
三、实验条件及设备要求
硬件环境:计算机一台;正点原子战舰STM32F103开发板
四、实验步骤
1. 硬件设计
(1) 例程功能
LED 灯:DS0 和 DS1 每过 500ms一次交替闪烁,实现类似跑马灯的效果。
(2) 硬件资源
LED 灯:DS0 - PB5,DS1 - PE5
(3) 原理图
本章用到的硬件用到 LED 灯:DS0 和DS1。电路在开发板上已经连接好了,所以在硬件上不需要动任何东西,直接下载代码就可以测试使用。其连接原理图如图 2.1 所示:

图 2.1 LED 与 STM32F103 连接原理图
2.软件设计

(1)gpio.c文件代码:

(2) main.c 文件代码:

3. 下载验证

五、实验总结
GPIO 配置:输出模式控制 LED,输入模式检测按键,结合 HAL 库 API 简化开发;
消抖逻辑:软件延时解决按键抖动问题,保证检测稳定;
扩展性:可通过修改 main.c 中的 LED 控制逻辑,实现更复杂的跑马灯效果(如流水灯、呼吸灯结合定时器 ),或扩展更多按键、LED 引脚。