完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 kaloha 于 2017-5-15 16:23 编辑
---------------------------------------------------------------------------------------- 本文转自:www.waveshare.net/study/article-600-1.html ---------------------------------------------------------------------------------------- 树莓派的强大之处不单单是因为它是一个卡式电脑,更重要的是个引出GPIO,可以通过编程控制GPIO管脚输出高低电平。学过51单片机的孩童第一个程序就是点亮一个LED灯,从此就点亮我们的人生,从此code奸我千百遍,我待code如初见。今天我们就来探讨一下树莓派点亮一个LED灯的n种方法。从这一章开始我们将教大家如何在树莓派编程,在学习树莓派编程前,你需要一块树莓扩展板。本教程是WaveShare设计的Pioneer600扩展板为例。Pioneer600扩展板包括了GPIO,I2C,SPI,Serial等接口的器件,是学习树莓派编程很好的扩展板。关于Pioneer600扩展的详细资料看网站。 1、 通过shell 脚本操作GPIO # 进入GPIO目录
# 运行ls命令查看gpio目录中的内容,可以查看到export gpiochip0 unexport三个文件
# GPIO操作接口从内核空间暴露到用户空间 # 执行该操作之后,该目录下会增加一个gpio26文件
# 进入GPIO26目录,该目录由上一步操作产生
# 运行ls查看gpio26目录中的内容,可查看到如下内容 # active_low direction edge power subsystem uevent value
# 设置GPIO26为输出方向
# BCM_GPIO26输出逻辑高电平,LED点亮
# BCM_GPIO26输出逻辑低电平,LED熄灭
# 返回上一级目录
# 注销GPIO20接口
注:echo 命令为打印输出,相当于C语言的printf函数的功能,>符号为IO重定向符号,IO重定向是指改变linux标准输入和输出的默认设备,指向一个用户定义的设备。例如echo 20 > export便是把20写入到export文件中 我们可以编写成shell 脚本的形式运行
用vi新建led.sh文件,添加如下程序并保存退出。
修改文件属性,使文件可执行。
程序第一句注销表明这个是一个bash shell 文件,通过/bin/bash程序执行。 $1代表第一个参数,$2代表第二个参数,执行如下两个命令可点亮和熄灭LED(Pioneer600扩展板LED1接到树莓派BCM编码的26号管脚)。
2、 通过sysfs方式操作GPIO 通过上面的操作,我们可以发现在linux系统中,读写设备文件即可操作对应的设备。所以说在linux的世界,一切的都是文件。下面我们可以通过C语言读写文件的方式操作GPIO.
使用vi新建led.c文件,添加如下程序并保存退出。
编译并执行程序
如果没有意外,我们可以看到接到BCM编码的26号管脚的LED,闪烁10次后自动退出程序。 [size=18.6667px]以上第一条命令是使用gcc编译器将led.c源文件,编译成led可执行文件,在目录下面我们可以发现编程后生产的led可执行文件。我们也可以编写Makefile文件,下次直接运行make命令即可编译程序。
使用vi 新建Makefile文件,添加如下代码并保存退出。
运行如下命令即可编译led.c程序
运行如下命令即可删除编译产生的可执行文件led
余下教程都为方便解说都是运行gcc 命令编译程序,如果想编写Makefile文件可查看Pioneer600示例程序。 关于sysfs操作GPIO方式,详情请参考如下网站:https://bitbucket.org/xukai871105/rpi-gpio-sysfs |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
5863 浏览 0 评论
14170 浏览 9 评论
7793 浏览 0 评论
基于Amazon Echo 和 Raspberry Pi 的自动窗帘控制
7142 浏览 1 评论
【下载】《Linux+树莓派玩转智能家居》——亲手进行树莓派应用制作
160034 浏览 374 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 12:26 , Processed in 0.566918 second(s), Total 57, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号