树莓派WiringPi库
目录1、查看WiringPi库是否安装2、API1、查看WiringPi库是否安装查看树莓派是否有WiringPi库输入指令:gpio -v输出下面代表有库,否则不认识指令gpio version: 2.50Copyright (c) 2012-2018 Gordon HendersonThis is free software with ABSOLUTELY NO WARRANTY.For de
1、查看WiringPi库是否安装
- 查看树莓派是否有WiringPi库
输入指令:gpio -v
输出下面代表有库,否则不认识指令
gpio version: 2.50
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
Raspberry Pi Details:
Type: Pi 3, Revision: 02, Memory: 1024MB, Maker: Unknown
* Device tree is enabled.
*--> Raspberry Pi 3 Model B Rev 1.2
* This Raspberry Pi supports user-level GPIO access.
2、API
int wiringPiSetup(void);
硬件初始化,使用wiringPi库必须初始化
返回值:-1失败
2.1、普通GPIO函数
包含头文件#include <wiringPi.h>
编译时链接库 -lwiringPi
void pinMode(int pin,int mode);
配置引脚,配置引脚io模式
参数1:pin引脚,gpio readall出来的表,wPi列的序号
参数2:模式,可取INPUT,OUTPUT,PWM_OUTPUT,GPIO_CLOCK
左边上面是树莓派靠圆环内侧,第一个引脚
void digitalWrite(int pin, int value);
控制引脚输出
参数1:pin引脚
参数2:LOW低电平,HIGH高电平
int digitalRead(int pin);
读取输入电平0,1
参数:pin引脚
void analogWrite(int pin,int value)
输出模拟量(树莓派不支持AD转换,要加模块)
参数1:pin
参数2:模拟量
int analogRead(int pin)
输入模拟量(树莓派不支持AD转换,要加模块)
参数:pin
void pwmWrite(int pin,int value)
输出PWM波,pin只能是1脚
参数1:pin
参数2:写入到PWM寄存器的值,0-1024
void pullUpDnControl(int pin,int pud)
拉电阻模式
参数1:pin
参数2:PUD_OFF关闭拉电阻,PUD_DOWN下拉,PUD_UP上拉
2.2、时间控制函数
unsigned int millis(void)
返回从硬件初始化开始,程序执行到现在的毫秒级数
硬件初始化函数:wiringPiSetup
最大可记录49天
unsigned int micros(void)
和上面函数一样,这个是微秒级数
最大记录71分钟
void delay(unsigned int howLong)
延时函数,毫秒级
void delayMicroseconds(unsigned int howLong)
延时函数,微妙级
2.3、软件实现PWM函数
包含头文件#include<softPwm.h>
编译时添加库连接 -lpthread
int softPwmCreate(int pin,int initialValue,int pwmRange)
使用一个指定pin引脚,创建一个模拟的PWM输出引脚
返回值:0成功
参数1:pin
参数2:引脚输出的初始值
参数3:PWM值范围上限,建议100
void softPwmWrite(int pin,int value)
更新引脚PWM值
参数1:pin
参数2:PWM引脚输出值
2.4、串口通信
包含头文件#include <wiringSerial.h>
用之前要改树莓派的启动文件cmdline.txt,把默认串口用作打印启动终端删掉
打开文件sudo vi /boot/cmdline.txt
删掉console=seria10,115200
int serialOpen(char *device, int baud)
打开并初始化串口
返回值:成功文件描述符,-1失败
参数1:串口地址,设备目录,/dev/ttyAMA0
参数2:波特率
void serialClose(int fd)
关闭串口
参数:文件描述符,关闭的串口
void serialPutchar(int fd, unsigned char c)
发送一个字节数据,一个字符
参数1:fd
参数2:发送的字符
void serialPuts(int fd,char*s)
发送字符串
参数1:fd
参数2:发送的字符串
void serialPrintf(int fd,char *message,...)
发送数据
参数1:fd
参数2:发送的字符串
int serialDataAvail(int fd)
获取串口缓冲区字节数
返回值:缓冲区字节数,可读取的字节数,-1错误
参数:fd
int serialGetchar(int fd)
读取一个字节数据
返回值:读取到的字符
参数:fd
void serialFlush(int fd)
清空串口缓冲区所有数据
参数:fd
*size_t write(int fd,const void*buf,size_t count)
Linux标准IO库函数,头文件#include<unistd.h>
返回值:实际发送字符数,-1错误
参数1:fd
参数2:发送的数据
参数3:字节个数
*size_t read(int fd,void *buf,size_t count)
Linux标准IO库函数,头文件#include<unistd.h>
返回值:实际接收字符数,-1错误
参数1:fd
参数2:接收的数据
参数3:字节个数
更多推荐



所有评论(0)