orangeP烧录ubuntu操作系统及配置
1.rufus制作镜像驱动到SD卡
2.远程工具通过com口连接Pi(波特率115200)
3.用户:root/orangepi 密码:orangepi
4.连接wifi或网口
wifi连接指令
nmcli dev wifi connect 无线名 password 无线密码
5.配置静态IP,方便ssh登录
6.安装wiringPi库
wget https://github.com/orangepi-xunlong/wiringOP
unzip wiringOP-master.zip
cd wiringOP-master
./build
测试
gpio readall
针脚配置图
实际针脚图
wiringPi库
初始化函数
int wiringPiSetup (void);
返回:执行状态,-1表示失败
int wiringPiSetupGpio (void);
返回执行状态,-1表示失败
引脚的编号为0~16及BCMGPIO引脚需要root权限
GPIO控制函数
配置引脚的IO模式
void pinMode (int pin, int mode);
pin:配置的引脚
mode:引脚IO模式
取值:INPUT,OUTPUT,PWM_OUTPUT,GPIO_CLOCK
注意:
wiringPi 的1(BCM 18)支持PWM输出
wiringPi的7(BCM 4)支持GPIO_CLOCK输出
INPUT模式
void digitalWrite (int pin, int value);
pin:控制的引脚
value:引脚输出的电平值
取值:HIGH,LOW分别代表高低电平
OUTPUT模式
int digitalRead (int pin);
pin:读取的引脚
返回:读取脚的电平值LOW,HIGH
时间控制函数
unsigned int millis (void);
初始化函数到当前时间的毫秒
unsigned int micros (void);
初始化函数到当前时间经过的微秒数
void delay (unsigned int howLong);
将当前执行流暂停指定的毫秒数
void delayMicroseconds (unsigned int howLong);
将执行流暂停指定的微秒数
串口控制函数
打开串口
int serialOpen (char *device, int baud);
device:串口的地址,默认/dev/ttyAMA0
baud:波特率
返回:正常返回文件描述符,失败返回-1
关闭串口
void serialClose (int fd);
fd:文件描述符
发送一个字节的数据到串口
void serialPutchar (int fd, unsigned char c);
fd:文件描述符
c:要发送的数据
发送字符串到串口
void serialPuts (int fd, char *s);
fd:文件描述符
s:发送的字符串,字符串要以'\0'结尾
发送格式字符串到串口
void serialPrintf (int fd, char *message, …);
fd:文件描述符
message:格式化的字符串(类似printf)
串口接收检测
int serialDataAvail (int fd);
fd:文件描述符
返回:串口缓存中接收的字节数,失败返回-1
获取串口缓存中可用的字节数
int serialGetchar (int fd);
fd:文件描述符
返回:读取到的字符(1个字节),没有数据,等待10秒,返回-1
清空串口缓冲
void serialFlush (int fd);
fd:文件描述符
发送数据
*size_t write (int fd,const void * buf,size_t count);
fd:文件描述符
buf:需要发送的数据缓存数组
count:发送buf中的前count个字节数据
返回:实际写入的字符数,错误返回-1
读取数据
*size_t read(int fd,void * buf ,size_t count);
fd:文件描述符
buf:接受的数据缓存的数组
count:接收的字节数
返回:实际读取的字符数