外观
GPIO 输出示例
2026-05-15
概述
本文介绍如何在 睿擎工业开发平台 中创建并运行 GPIO 输出控制 示例工程。通过定义一个支持参数化控制的 gpio_output_int_example 函数,演示了如何动态获取引脚编号并控制其电平翻转。
GPIO 子系统
GPIO(通用输入输出)子系统是 RT-Thread 等操作系统中管理芯片引脚的核心框架。它提供了标准化的接口,开发者可以通过这些接口轻松实现引脚模式设置(输入/输出)、电平读写控制等功能,从而实现对硬件状态的精确把控。
GPIO 输出简介
GPIO 输出是嵌入式系统中控制外部硬件设备(如 LED 指示灯、继电器、电机驱动等)的基础功能。通过将指定的 GPIO 引脚配置为输出模式,并向其写入高低电平,MCU 可以实现对物理世界状态的直接操控,是构建各种自动化逻辑与人机交互界面的基石。
构建与烧录
创建工程点击展开
依次点击 “文件” -> “新建” -> "RT-Thread RuiChing App 项目"。

在弹出新建向导中选择 开发版 、BSP: 、示例 、 调试器/下载器。选择好之后点击 “完成”。

点击 “完成” 后,等待工程创建完成。

创建完成。

构建工程点击展开
单击工程使工程进入 Active-Debug 模式。

点击工具栏上的构建按钮进行工程编译。

构建成功后,会显示构建成功的信息。

固件下载点击展开
固化驱动

固化 APP

核心示例代码
GPIO 示例相关代码说明
rt_pin_mode:将指定引脚配置为输出模式;rt_pin_write:分别用于控制引脚输出高电平和低电平,对应实现 LED 的点亮与熄灭操作;
gpio_output_int_example.c
static void _usage(const char *func_name)
{
rt_kprintf("usage: %s <output_pin>\n", func_name);
rt_kprintf(" %s -h\n", func_name);
rt_kprintf("\n");
rt_kprintf("output_pin Output pin (e.g: p0.13)\n");
rt_kprintf("\n");
}
int gpio_output_int_example(int argc, char *argv[])
{
rt_base_t pin = 0;
rt_uint32_t count = 5;
if (rt_device_find(PIN_DEV_NAME) == RT_NULL)
{
return -RT_ERROR;
}
if (argc < 2)
{
_usage(__func__);
return 0;
}
pin = rt_pin_get(argv[1]);
if (argc >= 3)
{
count = atoi(argv[2]);
}
rt_pin_mode(pin, PIN_MODE_OUTPUT);// 设置引脚模式
rt_kprintf("---- GPIO Output Test Start ----\n");
rt_kprintf("Target Pin: %d | Count: %d\n", pin, count);
while (count--)
{
rt_kprintf("[%d] LED HIGH...\n", count);
rt_pin_write(pin, PIN_HIGH);// 13号引脚设置高电平
rt_thread_mdelay(500);
rt_kprintf("[%d] LED LOW...\n", count);
rt_pin_write(pin, PIN_LOW);// 13号引脚设置低电平
rt_thread_mdelay(500);
}
rt_kprintf("---- Test Finished ----\n");
return RT_EOK;
}运行示例
操作步骤
- 将程序下载到开发板
- 打开串口终端连接开发板
- 输入
gpio_output_int_example命令
预期结果
- LED 灯以 0.5 秒亮、0.5 秒灭的方式闪烁 5 次
- 串口终端显示启动和结束日志信息
- 程序执行完毕后自动退出
RT-Thread 终端
msh />gpio_output_int_example P0.13
P0.13 --> gpio0.13 --> gpio0.B5
---- GPIO Output Test Start ----
Target Pin: 13 | Count: 5
[4] LED HIGH...
[4] LED LOW...
[3] LED HIGH...
[3] LED LOW...
[2] LED HIGH...
[2] LED LOW...
[1] LED HIGH...
[1] LED LOW...
[0] LED HIGH...
[0] LED LOW...
---- Test Finished ----LED 灯 点亮:

LED 灯 熄灭:

