0.前言
树莓树莓派可以无痛入门linux,下面通过命令和shell脚本控制树莓派GPIO。通过本文可以熟悉多个linux命令,并熟悉shell脚本编写方法,并对IO重定向有一个基本的体会。我在学习树莓派的过程中积累了自信,现在觉得linux没那么神秘没那么难,反而充满了无穷的乐趣,希望通过博客把快乐带给大家。
相关博文
1.引脚与编号关系
图1 引脚与编号关系
例如 Header-PIN7 对应WiringPi GPIO7 对应BCM GPIO4。
2.使用命令操作GPIO
请耐心输入以下命令并查看效果
# 获得超级权限
sudo su
# 进入GPIO目录
cd /sys/class/gpio
# 使用ls查看gpio目录中的内容,可以查看到
# export gpiochip0 unexport
ls
# GPIO操作接口从内核空间暴露到用户空间
# 执行该操作之后,该目录下会增加一个gpio4文件
echo 4 > export
# 进入GPIO4目录,该目录由上一步操作产生
cd gpio4
# 查看gpio4目录中的内容,可查看到
# active_low direction edge power subsystem uevent value
ls
# 设置GPIO4为输出方向
echo out > direction
# BCM_GPIO4输出逻辑高电平,LED点亮
echo 1 > value
# BCM_GPIO4输出逻辑低电平,LED熄灭
echo 0 > value
# 返回上一级目录
cd ../
# 注销GPIO4接口
echo 4 > unexport
# 退出超级用户
exit
几点说明
【1】>符号为IO重定向符号,IO重定向是指改变linux标准输入和输出的默认设备,指向一个用户定义的设备。例如echo 4 > export便是把4写入到export文件中。
【2】linux内核中关于GPIO驱动的【
资料】。
3.编写一个shell脚本
新建一个名为ledon.sh的脚本。
#!/bin/bash
#利用echo输出一些提示语句
echo export pin $1
echo $1 > /sys/class/gpio/export
echo setting direction to output
echo out > /sys/class/gpio/gpio$1/direction
echo setting pi high
echo 1 > /sys/class/gpio/gpio$1/value
几点说明
【1】如果在windows上编写shell脚本的话(后使用FTP工具传输至树莓派),必须保存为unix格式。shell脚本每行以\n结尾,而不是windows中的\r\n。可以使用notepad++格式转换功能完成变化。
【2】一般情况下,脚本文件可读可写,但不能被执行。需要通过chmod指令增加可执行功能,例如输入以下命令(请注意,需要通过cd指令进入shell脚本所在的目录)
chmod +x ledon.sh
【3】shell脚本可传入参数,例如$1代表第一个参数,$2代表第二个参数,以此类推。
运行该脚本可输入以下指令,使得BCM_GPIO4输出高电平
sudo ./ledon.sh 4
4.总结
其实树莓派GPIO控制就那么简单。
5.参考资料
【1】图书 《爱上树莓派》
分享到:
相关推荐
树莓派学习笔记——wiringPi GPIO使用详解.docx GPIO使用详解
超经典的STM32学习笔记——第一章GPIO口.docx
树莓派驱动USB摄像头个驱动GPIO口的代码, 环境: 1、树莓派3b 2、Qt 3、opencv 4、wiringPi 功能: 1、驱动USB摄像头并在窗口中显示 2、驱动GPIO口,控制LED灯的闪烁
树莓派Qt开发入门(二):超声波测距实验——GPIO的读写操作+多线程编程
树莓派-通过Web控制GPIO针脚输出高低电平(改进版) http://blog.csdn.net/a497785609/article/details/78060029
树莓派内核中已经编译自带了 gpio 的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有: python GPIO 开发语言——python 简单介绍——树莓派官方资料中推荐且容易上手。python...
树莓派gpio4测试程序,复制到pi目录中,然后运行终端,输入python gpio4blink.py,就可以看到gpio4口led闪烁,前提gpio4口接了一个led
树莓派GPIO测试程序 ,树莓派GPIO控制LED亮灭程序。使用之前需安装GPIOpython库。
使用树莓派的GPIO口驱动ov7670 并把图像发送到远程端 端口对应的很详细 都在。h文件中
树莓派 Python GPIO包
完成Raspberry Pi 树莓派3B 写入程序,控制GPIO05 PIN#29端口的LED闪烁功能
STM32F103VET6摸索了很久之后终于把ARM开发板上的LED灯点亮了,虽然是很简单的一个IO口操作,但是由于以前从来都没有什么经验,所以浪费了很多时间,也查找了很多...现在可以操作IO口了,证明迈出了学习ARM的第一步。
STM8-库函学习笔记之GPIO相关的函数: 1 void GPIO_DeInit(GPIO_TypeDef* GPIOx); 2 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode); 3 void GPIO_Write(GPIO_...
linux下应用层操作gpio口,包括读写,直接可以使用
本例程演示如何操作GPIO输入和输出。通过检测USER1、USER2按键的状态,点亮不同的LED,同时输出键值到串口1。
STM32学习记录——2.GPIO输入—按键检测 使能 GPIO端口时钟; 初始化 GPIO目标引脚为输入模式(引脚默认电平受按键电路影响,浮空/上拉/下拉均没有区别); 编写简单测试程序,检测按键的状态,实现按键控制 LED灯...
树莓派GPIO初级使用学习教程.pdf,如有侵权请立即与我联系,我将及时处理,感谢。如有侵权请立即与我联系,我将及时处理,感谢。
树莓派+GPIO控制 ,能够实行树莓派通过引脚控制外围的设备,实现智能化的处理功能
与2020年11月12日写的文章配套的树莓派4B GPIO 驱动源码,在树莓派4B 上亲测可用,使用C 语言操作寄存器,没用采用现成的库