orangePI与wiringPi库(一):Pi基础

本文介绍了如何使用rufus在SD卡上制作Ubuntu镜像,通过COM口连接orangeP,设置root用户和密码,以及连接WiFi和配置静态IP。接着讲解了安装和使用wiringPi库进行GPIO控制,包括引脚模式配置、电平读写和时间控制函数。最后提到了串口通信的相关函数,如打开、关闭串口及数据发送与接收。
摘要由CSDN通过智能技术生成

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:接收的字节数
返回:实际读取的字符数	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值