Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git

电脑需要提前安装的工具:

SSH、串口 - 终端神器 MobaXterm,官网下载链接:https://mobaxterm.mobatek.net/download.html

windows端 代码编辑工具: VScode、Source Insight、Sublime, 都是不错的选择。选其一安装即可。

使用到的硬件:

led,200Ω左右的电阻、杜邦线。

 

在树莓派上控制GPIO,最简单的方式莫过于使用 wiringPi函数库了。

wiringPi简介

-- wiringPi是一个用c语言编写的GPIO函数库。起初只是作为芯片的GPIO库,而发展到今天,wiringPi提供了非常丰富的功能:GPIO、UART、I2C、SPI、PWM等,同时也提供了中断、多线程等操作,功能非常强大。

-- wiringPi的函数类似于 Arduino,十分容易上手。使用c/c++进行开发,并且可以被其他语言转换,例如python。

 

一、获取wiringPi

终端输入 gpio -v 或 gpio readall,来查看本机是否安装了 wiringpi.

gpio python 树莓派 树莓派gpio库函数_树莓派

如果指令相应错误,则是没有安装。使用下面命令进行安装。

sudo apt-get inatall wiringpi

 

二、GPIO管脚编码

wiringPi函数库的管脚编码,大致分为几种:1.wiringPi编码  2.BCM编码  3.物理引脚编码

int wiringPiSetup (void) ;             //设置使用 wiringPi编码。

int wiringPiSetupGpio (void) ;     // 设置使用 BCM编码。

int wiringPiSetupPhys (void) ;     // 设置使用 物理引脚编码,不常用。

gpio python 树莓派 树莓派gpio库函数_Linux_02

 

三、硬件连接

我们使用 wiringPi编码的 7脚,输出0/3.3V电平,来控制LED的亮灭。

LED的压降为 2V左右,限制单个GPIO的输出电流在5mA左右,电阻的取值为 200~680Ω较为合适。

led的阳极串联200Ω电阻,连接到树莓派wiringPi编码的7脚。(一定要区分wiringPi编码 、BCM编码 、和物理引脚编码)

gpio python 树莓派 树莓派gpio库函数_引脚_03

 

四、编写c代码

Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git

使用到的函数有:

函数语句

函数功能

wiringPiSetup();

使用wiring编码去初始化GPIO序号

pinMode(int pin, int mode);

设置GPIO电气属性

digitalWrite(int pin, int value);

设置一个数字引脚,输出指定电平

delay(unsigned int howLong);

延时 xx ms

#include <wiringPi.h>

int led = 7;                    // 定义使用wiringPi编码的7引脚
int main(void)
{
    wiringPiSetup();            // 使用wiring编码去初始化GPIO序号
    pinMode(led, OUTPUT);       // 设置GPIO电气属性为推挽输出
    while(1)
    {
        digitalWrite(led, 1);   // led亮
        delay(500);             // 延时500ms
        digitalWrite(led, 0);   // led灭
        delay(500);             // 延时500ms
    }
    return 0;
}

通过MobaXterm,使用FTP,将led.c传输到树莓派文件夹内。

如何使用 FTP,见准备篇:

gpio python 树莓派 树莓派gpio库函数_嵌入式Linux_04

 

五、编译运行

使用下列指令编译。-o led表示指定生成文件的名字为led,-lwiringPi表示链接wiringPi库。

gcc led.c -o led -lwiringPi

使用如下命令运行:

./led

使用如下组合键,结束运行。

Ctrl + c

gpio python 树莓派 树莓派gpio库函数_嵌入式Linux_05

gpio python 树莓派 树莓派gpio库函数_嵌入式Linux_06

gpio python 树莓派 树莓派gpio库函数_gpio python 树莓派_07