这是一套用荔枝派 4A + RuyiSDK + C 的 RISC-V Linux 实践课。
完整讲义/实验(含实机图与板上录像)在网页;本帖同步贴出跟做要点。
系列目录
01 【荔枝派 4A】RISC-V Linux 实践课 01|环境与工具链
02 【荔枝派 4A】RISC-V Linux 实践课 02|够用的 C
03 GPIO 与执行器(本周)
04 命令对话与温控
05 网络与 MQTT
06 线程与协同
课程总览:Ruyi RISC-V Linux 课程 · 总览
讲义完整版:第三章 GPIO 与执行器 · 讲义 — RISC-V Linux 课程
实验完整版:第三章 · 本章实验 · 三个实验
本章要完成什么
用 gpiod 经继电器控 5V 风扇;自己写 line_request / fan_set / fan_decide,跑通模拟温度滞回控风扇。
需要准备
- 已完成第 1、2 章
- 荔枝派 4A + 继电器 + 5V 风扇 + 杜邦线
- 板端 gcc 或主机交叉编译
讲义要点
3.1 外设与 I/O
程序最终是往寄存器里改位。用户态经内核接口(gpiod)控制 GPIO,不直接裸写寄存器。
3.2 本课默认脚
- 丝印 IO1_5 ↔
/dev/gpiochip5line 5 - 信号脚电平 1.8V;风扇走继电器,不直驱 GPIO
- 一根 line 同时只能一个占用者;残留
gpioset会 busy
3.3 跟做:gpioset 控一次继电器(先只接信号端)
接线(信号 + 供电):
- 排针 IO1_5 → 继电器 IN
- 排针 5V → 继电器 V+
- 排针 GND → 继电器 V-
- 跳线帽拨到 H
sudo pkill -x gpioset
sudo gpioset -c gpiochip5 5=1
# 另开终端看状态:
sudo cat /sys/kernel/debug/gpio | head -n 80
sudo pkill -x gpioset
sudo gpioset -c gpiochip5 5=0