目录

【wiringPi库简介】

【wiringPi库安装】

【使用说明】

【具体函数解析】

【树莓派引脚编码】

        1.板载编码

        2.BCM编码

        3.wiringPi编码

【小试牛刀:C开发控制LED亮灭(一)】


【wiringPi库简介】

        wiringPi 是一个强大而灵活的C语言库,为树莓派和其他基于 Linux 的系统提供了简化的GPIO访问接口,并支持各种功能,使得物理计算和硬件交互变得更加便捷。

下面是 wiringPi 库的一些主要特点

  1. 简化的GPIO访问:wiringPi 提供了简单而直观的功能,允许开发者轻松地配置和使用树莓派的GPIO引脚。通过几个简单的函数调用,可以设置引脚模式(输入/输出)、读取和写入引脚状态,以及处理中断。

  2. 跨平台支持:wiringPi 不仅仅适用于树莓派,它还可跨平台运行在其他基于 Linux 的系统上。这使得你可以在其他支持 wiringPi 的硬件上使用相同的代码,轻松移植项目。

  3. 底层访问:wiringPi 使用底层的 BCM2835 芯片库,提供对树莓派 GPIO 的低级别访问。这使得它能够实现更高精度的计时和更快的响应速度。

  4. 支持丰富的功能:wiringPi 不仅支持基本的GPIO操作,还提供了其他功能,如软件PWM(脉冲宽度调制)、软件I2C、软件SPI、中断处理等。这些功能使开发者能够更方便地与各种外设进行通信。

【wiringPi库安装】

        验证是否有该库:在CLI中输入下面命令,若输出wiringPi相关信息则说明已有该库

gpio -v

        若显示command not found 说明并未安装,安装方法如下:

        在CLI中输入下面命令

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install wiringpi

        再次验证是否有该库,若输出wiringPi相关信息则说明安装成功,否则尝试下面命令
        或者使用gpio readall命令无效时,使用该命令进行更新

wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

【使用说明】

        1.使用该库时需包含头文件

#include<wiringPi.h>

        2.使用该库时需在执行任何操作前进行初始化,需要root权限
           初始化函数如下,它们都会返回一个int , 返回 -1 表示初始化失败

int wiringPiSetup (void)        # 使用 WiringPi 引脚编号表,引脚的编号为 0~16
int wiringPiSetupGpio (void)    # 使用 BCM 引脚编号表,引脚的编号为 0~16

        3.使用该库时,编译时需加上链接,示例如下

gcc demo.c -lwiringPi

          更标准的写法

gcc -o 新文件名 demo.c -lwiringPi    // 怀疑有误
gcc demo.c -o 新文件名 -lwiringPi    // 可能是
gcc demo.c -lwiringPi -o 新文件名    // 可能是
sudo ./新文件名    # root权限进行执行

【具体函数解析】

https://www.cnblogs.com/lulipro/p/5992172.html

WiringPi安装及使用详解 | 德琳工程狮

【树莓派引脚编码】

        1.板载编码

        2.BCM编码

                Python开发使用的GPIO编码

        3.wiringPi编码

                C语言开发使用的GPIO编码           (若在gpio后加上-g,则表示用的是BCM编码)

 详情跳转:Raspberry Pi GPIO Pinout

【小试牛刀:C开发控制LED亮灭(一)】

        接线:LED正极接3.3V,负极接BCM编码的4号引脚上

        代码如下

gpio -g mode 4 out    # 设置引脚为输出模式,-g表示BCM编码,若去掉-g则为WiringPi编码
gpio -g read 4        # 读取引脚当前电平
gpio -g write 4 1     # 设置该引脚为高电平
gpio -g write 4 0     # 设置该引脚为低电平

【小试牛刀:C开发控制LED亮灭(二)】

#include<wiringPi.h>
#define Pin 25
int main()
{
    if(wiringPiSetup() == -1)
        return -1;
    pinMode(Pin,OUTPUT);
    for(int i=0;i<10;i++)
    {
        digitalWrite(Pin,1);
        delay(200);
        digitalWrite(Pin,0);
        delay(200);
    }
    return 0;
}
gcc -o 新文件名 demo.c -lwiringPi
sudo ./新文件名    # root权限进行执行
Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐