901 发表于 2020-4-22 09:35:38

【入门】点亮一个LED灯

本帖最后由 901 于 2020-4-22 13:44 编辑

树莓派内核中已经编译自带了gpio的驱动,比较常见的操作库函数有:Python GPIO
Python GPIO已经集成到了树莓派内核,为树莓派官方资料中推荐且容易上手。python GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作,但是python GPIO库还没有支持SPI、I2C或者1-wire等总线接口。
常见C语言库有:wiringPi (http://wiringpi.com/)wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括UART设备,I2C设备和SPI设备等。

更新列表:pi@raspberrypi:~ $sudo apt-get update
更新软件: pi@raspberrypi:~ $sudo apt-get upgrade
安装: pi@raspberrypi:~ $sudo apt-get install wiringpi
wiringPi包括一套gpio命令,使用gpio命令可以控制树莓派上的各种接口,通过以下指令可以测试wiringPi是否安装成功。pi@raspberrypi:~ $ gpio -v查看GPIO图pi@raspberrypi:~ $ gpio readall
硬件连接LED的正极串联一个1KΩ电阻接树莓派的GPIO18(pin12),负极接地。http://www.shumeipai.net/forum.php?mod=image&aid=8858&size=300x300&key=0926a4dca6903b1d&nocache=yes&type=fixnone
代码:#include <wiringPi.h>int main (void){    wiringPiSetup () ; // 初始化 这个必须写在最前面    pinMode (1, OUTPUT) ; // 设置GPIO.1 为输出    for (;;) // 无限循环    {       digitalWrite (1, HIGH);// GPIO.1 输出高       delay (500);// 延时500毫秒       digitalWrite (1, LOW); // GPIO.0 输出低       delay (500);     }    return 0 ;}

【终端操作】Vim led.c 【i】进入插入模式,然后使用【ctrl + shift + v】组合键粘贴复制的代码,最后按【Esc】然后输入【:wq】回车保存。

编译pi@raspberrypi:~ $ gcc led.c -o led -l wiringPi-l wiringPi表示动态加载wiringPi共享库。

运行pi@raspberrypi:~ $ sudo ./led用 Ctrl+C 来中断循环。
用Python脚本控制GPIO用Python控制GPIO,最便捷的方法就是使用python类库,比如树莓派系统本身集成的RPi.GPIO。pi@raspberrypi:~ $ python//进入python交互界面import RPi.GPIO as GPIO    //导入python类库RPi.GPIO,命名为别名为GPIOGPIO.setmode(GPIO.BCM)//设置BOARD编码方式,基于BCMGPIO.setup(18,GPIO.OUT)//GPIO18输出高电平,LED点亮GPIO.output(18,GPIO.HIGH)GPIO.output(18,GPIO.LOW)//GPIO18输出低电平,LED熄灭GPIO.cleanup()//用完后进行清理Ctrl+D//退出python交互界面

新建一个名为blinky.py的脚本import RPi.GPIO as GPIOimport time
GPIO.setmode(GPIO.BCM)GPIO.setup(18,GPIO.OUT)
while True:   GPIO.output(18,GPIO.HIGH)   time.sleep(1)   GPIO.output(18,GPIO.LOW)   time.sleep(1)
GPIO.cleanup()

为blinky.py添加可执行权限pi@raspberrypi:~ $ sudo chmod +x blinky.py
运行Python脚本pi@raspberrypi:~ $ sudo python blinky.py
LED闪烁。
停止运行用 Ctrl+C 来中断循环。
页: [1]
查看完整版本: 【入门】点亮一个LED灯