树莓派WiringPi库总结

简介: 树莓派WiringPi库总结

1.WiringPi库介绍

(1)Wiringpi是一个很棒的树莓派IO控制库,提供了丰富的接口:GPIO控制,中断,多线程等等,java的pi4j项目也是基于wiringpi


(2)在使用wiringPi库时,你需要包含头文件 #include<wiringPi.h>。凡是写wiringPi的程序,都包含这个头文件。


2.WiringPi库安装编译和运行

(1)安装


  进入wiringPi的官网下载安装包


  进入安装包所在的目录执行以下命令


  tar xfz wiringpixxx.tar.gz


  cd wiringpixxx


  /build


 验证wiringPi是否安装成功,输入gpio-v,会在终端中输出wiringpi的信息,否则安装失败


(2)编译和运行


编译: gcc xxx.c ‐o xxx ‐lwiringpi


运行: sudo ./xxx


3.硬件初始化函数

使用wiringpi时,必须在执行任何操作前初始化树莓派,否则程序不能正常工作


可以调用下表函数之一进行初始化,它们都会返回一个int,返回-1表示初始化失败。

int wiringPiSetup (void) 返回:执行状态,-1表示失败

当使用这个函数初始化树莓派引脚时,程序使用的是wiringPi 引脚编号表。引脚的编号为 0~16

需要root权限

int wiringPiSetupGpio (void) 返回执行状态,-1表示失败

当使用这个函数初始化树莓派引脚时,程序中使用的是BCM GPIO 引脚编号表。

需要root权限

wiringPiSetupPhys(void)  不常用,不做介绍  /
wiringPiSetupSys (void) ;  不常用,不做介绍  /


4. 通用GPIO控制函数

image.png

5.时间控制函数

unsigned int millis (void)
这个函数返回 一个 从你的程序执行 wiringPiSetup  初始化函数(或者wiringPiSetupGpio ) 到 当前时间 经过的 毫秒数。
返回类型是unsigned int,最大可记录 大约49天的毫秒时长。
unsigned int micros (void) 这个函数返回 一个 从你的程序执行 wiringPiSetup  初始化函数(或者wiringPiSetupGpio ) 到 当前时间 经过的 微秒数。
返回类型是unsigned int,最大可记录 大约71分钟的时长。
void delay (unsigned int howLong) 将当前执行流暂停 指定的毫秒数。因为Linux本身是多线程的,所以实际暂停时间可能会长一些。参数是unsigned int 类型,最大延时时间可达49天
void delayMicroseconds (unsigned int howLong)

将执行流暂停 指定的微秒数(1000微秒 = 1毫秒 = 0.001秒)。

因为Linux本身是多线程的,所以实际暂停时间可能会长一些。参数是unsigned int 类型,最大延时时间可达71分钟


6.中断

wiringPi提供了一个中断处理注册函数,它只是一个注册函数,并不处理中断。他无需root权限。

image.png

7.softPwm,软件实现的PWM

树莓派硬件上支持的PWM输出的引脚有限,为了突破这个限制,wiringPi提供了软件实现的PWM输出API。

需要包含头文件:#include <softPwm.h>

编译时需要添pthread库链接  -lpthread image.png

8.串口通信

使用时需要包含头文件:#include <wiringSerial.h>

image.png

参考大佬lulipro - 博客园




相关文章
|
16天前
树莓派4B —— 文档
树莓派4B —— 文档
|
Java Linux 芯片
树莓派基础
简写RPI,只有信用卡大小的微型电脑,系统基于Linux。自树莓派问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”
树莓派3b+安装Raspbian系统
树莓派烧录系统需要先下载树莓派系统镜像或镜像压缩包,再将SD卡插入电脑,用SDFormatter这个软件对SD卡的第一个盘(boot盘)进行格式化,再用Win32DiskImager这个软件选择img镜像文件进行系统的烧录。
196 0
树莓派3b+安装Raspbian系统