书签 分享 收藏 举报 版权申诉 / 10

类型中职扩展资源包资料树莓派系列教程8如何点亮一个LED灯下.docx

  • 文档编号:24422356
  • 上传时间:2023-05-27
  • 格式:DOCX
  • 页数:10
  • 大小:142.04KB
gpioreadall

    从上图可以知道树莓派管脚有三种编号方式,下面以Pioneer600扩展板的LED1为例,第一种为板上编号(37),即中间两列,表示第几号插针。

第二中为wiringPi编码(25),使用wiringPi库编程时是用wiringPi编号,第三种为BCM编号,这个是更加BCM管脚来编号的,使用bcm2835库或python的RPi.GPIO编程时使用BCM编号。

我们可以使用gpio命令操作树莓派GPIO,下面我们可以gpio命令控制Pioneer600扩展的LED1.

1

gpio-gmode26out

设置管脚为输出模式,-g参数表示是以BCM编号方式,如果去掉这个参数测以wiringPi编号方式,即为25。

1

gpio-gwrite261

设置管脚为高电平,点亮LED.

1

gpio-gwrite260

设置管脚为低电平,熄灭LED,

1

gpio-gread26

读取管脚当前状态

更多gpio命令请查看:

s:

   3、wiringPi程序:

01

#include

02

charLED=25;

03

 

04

intmain(void)

05

{

06

    if(wiringPiSetup()<0)return 1;

07

    pinMode(LED,OUTPUT);

08

 

09

    while

(1)

10

    {  

11

        digitalWrite(LED,1);

12

        delay(200);

13

        digitalWrite(LED,0);

14

        delay(200);

15

    }  

16

}

使用vi将代码添加到led.c文件中,运行如下命令编译并执行程序。

按Ctrl+C终止程序。

1

gcc-Wallled.c–oled-lwiringPi 

2

sudo./led

注:

(1)-Wall表示编译时显示所有警告,-lwringPi表示编译时动态加载wringPi库

(2)终止程序后,LED的状态为不确定,这和python程序相比显得有点不足。

关于更多wiringPi的库函数,可参看wiringPi官网,也可参考wiringPi用户手册。

:

wenku.baidu/link?

url=U_APBvE_ga5pSSwPwWABIGJymLVwyC-0W9AEOT2cjhlZzoLywa0-QpElYNT2yHvNV0P7BbqTZCgG0ctaqZLi_ovkAGXREBOE6h68eTt-Q3y

     二、bcm2835

bcm2835库是树莓派cpu芯片的库函数,相当于stm32的固件库一样,底层是直接操作寄存器。

而wiringPi库和python的RPi.GPIO库其底层都是通过读写linux系统的设备文件操作设备。

     1、安装bcm2835库

从bcm22835官网()下载最新版本的库,然后解压安装。

1

tar-zxvfbcm2835-1.xx.tar.gz

2

cdbcm2835-1.xx

3

./configure

4

make

5

sudomakecheck

6

sudomakeinstall

2、示例程序

新建名为led.c的文件,添加如下程序。

01

#include 

02

 

03

#definePIN26

04

intmain(intargc,char**argv)

05

{

06

    if (!

bcm2835_init())return 1;

07

    bcm2835_gpio_fsel(PIN,BCM2835_GPIO_FSEL_OUTP);

08

 

09

    while 

(1)

10

    {  

11

        bcm2835_gpio_write(PIN,HIGH);

12

        bcm2835_delay(500);

13

        bcm2835_gpio_write(PIN,LOW);

14

        bcm2835_delay(500);

15

    }  

16

    bcm2835_close();

17

    return 0;

18

}

编译并执行程序,按Ctrl+C可结束程序。

1

gcc–Wallled.c–oled–lbcm2835

2

sudo./led

注:

(1)-lbcm2835表示动态加载bcm2835库

(2)注意bcm2835程序管脚使用bcm编号,和wiringPi编号不一样。

(3)和wiringPi一样,程序结束时GPIO的状态不确定。

三、python

1、安装RPi.GPIO

(1)先安装python-dev,输入以下指令。

1

sudoapt-getinstallpython-dev

(2)安装RPi.GPIO

1

9pt;line-height:

1.8em;">#下载

2

wgets:

pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz

3

#解压:

4

tar-zxvfRPi.GPIO-0.5.11.tar.gz

5

#进入解压之后的目录:

6

cdRPi.GPIO-0.5.3a

7

#启动安装:

8

sudopythonsetup.pyinstall

2.示例程序

新建led.py文件,添加如下代码并保存。

01

#!

/usr/bin/python

02

#-*-coding:

utf-8-*-

03

importRPi.GPIO as GPIO

04

importtime

05

 

06

LED=26

07

 

08

GPIO.setmode(GPIO.BCM)

09

GPIO.setup(LED,GPIO.OUT)

10

try:

11

    while True:

12

        GPIO.output(LED,GPIO.HIGH)

13

        time.sleep

(1)

14

        GPIO.output(LED,GPIO.LOW)

15

        time.sleep

(1)

16

except:

17

    print("except")

18

9pt;line-height:

25.2000007629395px;">   GPIO.cleanup()

执行程序,按Ctrl+C结束程序

1

sudopythonled.py

注:

(1)#!

/usr/bin/env python,定义python解析脚本的绝对路径。

  

(2)# -*- coding:

 utf-8 -*- ,python文件为utf-8格式,否则无法写入中文注释。

     (3) GPIO.setmode(GPIO.BCM),采用bcm编号方式。

  (4)python程序使用tryexcept语言,当按下Ctrl+C结束程序是会触发异常,程序执行gpio.cleanup()语句清楚GPIO管脚状态。

对python语言不是很熟悉的孩童,可以查看Python基础教程:

这里有一个python语言的wiringPi库,有兴趣的可以参考:

s:

github/WiringPi/WiringPi2-Python

 

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
中职扩展资源包资料树莓派系列教程8 如何点亮一个LED灯下 扩展 资源 资料 派系 教程 如何 点亮 一个 LED
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:中职扩展资源包资料树莓派系列教程8如何点亮一个LED灯下.docx
链接地址:https://www.bdocx.com/doc/24422356.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开