树莓派开发之旅 (七)【C开发之WiringPi库】
WiringPi库的简介,GPIO的编码,驱动LED
目录
【wiringPi库简介】
wiringPi 是一个强大而灵活的C语言库,为树莓派和其他基于 Linux 的系统提供了简化的GPIO访问接口,并支持各种功能,使得物理计算和硬件交互变得更加便捷。
下面是 wiringPi 库的一些主要特点:
-
简化的GPIO访问:wiringPi 提供了简单而直观的功能,允许开发者轻松地配置和使用树莓派的GPIO引脚。通过几个简单的函数调用,可以设置引脚模式(输入/输出)、读取和写入引脚状态,以及处理中断。
-
跨平台支持:wiringPi 不仅仅适用于树莓派,它还可跨平台运行在其他基于 Linux 的系统上。这使得你可以在其他支持 wiringPi 的硬件上使用相同的代码,轻松移植项目。
-
底层访问:wiringPi 使用底层的 BCM2835 芯片库,提供对树莓派 GPIO 的低级别访问。这使得它能够实现更高精度的计时和更快的响应速度。
-
支持丰富的功能: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
【树莓派引脚编码】
1.板载编码
2.BCM编码
Python开发使用的GPIO编码
3.wiringPi编码
C语言开发使用的GPIO编码 (若在gpio后加上-g,则表示用的是BCM编码)
【小试牛刀: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权限进行执行
更多推荐
所有评论(0)