【西门子杯工业嵌入式-2-点亮一颗LED】

发布于:2025-06-06 ⋅ 阅读:(21) ⋅ 点赞:(0)


链接: B站视频

一、课程回顾与目标

1.上节课内容回顾

了解了GD32系列芯片的基本信息

熟悉了项目的开发目录结构

2.本节课目标

学会通过GPIO控制LED点亮

实践使用标准外设库进行GPIO配置

实现两个LED的交替闪烁

二、硬件连接与原理

1. 硬件连接方式

开发板未固定连接LED,需通过杜邦线自定义连接端口。

每个LED通过限流电阻连接至公共端(GND),即低电平熄灭,高电平点亮。
在这里插入图片描述
在这里插入图片描述

2. 连接实例

示例中选择了 PE2 和 PE3 两个GPIO口连接LED。
在这里插入图片描述

三、GPIO原理知识

1. GPIO结构

GD32F470VET6 提供最多82个GPIO引脚(GPIOA~GPIOE,每组16个引脚)
在这里插入图片描述

可配置为:

输入/输出

上拉/下拉/浮空

推挽输出 / 开漏输出

高/中/低速

2. 推挽输出模式原理

利用上下两个MOS管交替导通

高电平输出 ≈ 3.3V,低电平输出 ≈ 0V

驱动能力强,适合LED等负载
在这里插入图片描述

四、软件实现步骤

1. 项目结构设置

在 hardware/LED/ 文件夹下:

新建 led.c 与 led.h

在工程设置中添加 led.c 源文件

配置路径引用 led.h

2. 函数定义

在 led.h 中定义两个函数:

void led_init(void);       // 初始化LED GPIO
void led_flash(void);      // LED交替闪烁

3. led.c 文件编写

初始化函数 led_init

rcu_periph_clock_enable(RCU_GPIOE);//开启GPIO端口时钟:
gpio_mode_set(GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_3);//配置GPIO模式
gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_3);//设置推挽输出、50MHz
gpio_bit_reset(GPIOE, GPIO_PIN_3);//默认输出低电平关闭LED

在这里插入图片描述

交替闪烁函数 led_flash

使用模板提供的 delay_1ms 函数进行延时

控制两颗LED交替点亮、熄灭,循环实现流水效果。

五、主函数调用逻辑

在 function.c 中的 user_function 函数中调用:

led_init();      // 初始化LED
led_flash();     // 实现交替闪烁

六、下载与调试设置

下载设置步骤:
1.打开“魔术棒”配置界面

2.进入“Debug”页签,选择 ST-Link

3.点击“Settings”确认芯片识别成功

4.勾选 “Reset and Run”,下载完成后自动运行程序

5.编译并下载程序

七、总结与思考

本节课收获:
学习了GPIO控制LED的基本原理

掌握了GD32固件库的使用方法

实现了两个LED灯交替闪烁的效果

留给大家的思考题:
如何实现多颗LED的流水灯?可以使用几种方式来实现?


网站公告

今日签到

点亮在社区的每一天
去签到