立创泰山派学习03--GPIO的控制
一、使用GPIO sysfs 接口控制IO(操作/sys/class/gpio目录下的exprot、unexport、gpio[NUM]/direction、gpio[NUM]/value来实现GPIO控制)
1、GPIO的硬件引脚GPIO0_B7
引脚 |
控制器 |
端口号 |
索引号 |
sysfs计算结果 |
---|---|---|---|---|
GPIO0_B7 |
0 |
B |
7 |
15= (32 x 0 + 8 x 1 + 7) |
2、将GPIO0_B7引脚(0*32+1*8+7=15)导出,便于访问和控制
echo 15 > /sys/class/gpio/export
3、将GPIO0_B7引脚的方向设置为输出模式,该引脚配置为输出模式
echo out > /sys/class/gpio/gpio15/direction
4、读取该GPIO0_B7引脚的输出电平
cat /sys/class/gpio/gpio15/value
5、设置该GPIO0_B7引脚的输出电平为高
echo 1 > /sys/class/gpio/gpio15/value, # 1为高电平,0为低电平
6、将GPIO0_B7引脚解除导出,释放对该引脚15的控制
echo 15 > /sys/class/gpio/unexport
二、使用libgpiod控制IO
1、安装libgpiod库、gpiod命令行工具
sudo apt install libgpiod-dev
sudo apt install gpiod
2、使用命令行控制
引脚 |
控制器 |
端口号 |
索引号 |
gpiod的使用结果 |
---|---|---|---|---|
GPIO0_B7 |
0 |
B |
7 |
0 15(8 x 1 + 7) |
gpiodetect :列出所有的GPIO控制器(sudo gpiodetect)
gpioinfo:列出gpio控制器的引脚情况(sudo gpioinfo 0)
gpioset: 设置gpio(sudo gpioset gpiochip0 15=1)
gpioget: 获取gpio引脚状态(sudo gpioget gpiochip0 15)
gpiomon: 监控gpio的状态(sudo gpiomon 0 15)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步