linux延时函数_wiringPi基本函数

be2d7ac2f32a6a5988682bcf4df85f77.png
代码文件中需添加:#include <wiringPi.h>
编译行需指定include文件和库文件路径,如:
-I /usr/local/include -L/usr/local/lib -lwiringPi

初始化设置:

int wiringPiSetup (void) ;

初始化wiringPi,使用 wiringPi 的管脚定义图。

管脚定义请参考:

gpio readall

注意:此函数需要root权限。如果初始化失败,则程序直接退出。

GPIO设置

模式设置 void pinMode (int pin, int mode) mode:INPUT, OUTPUT, PWM_OUTPUT or GPIO_CLOCK。

PWM_OUTPUT:仅wiringPi pin 1有效。

GPIO_CLOCK:仅wiringPi pin 7有效。

上/下拉电阻设置 void pullUpDnControl (int pin, int pud) pud:PUD_OFF(no pull up/down), PUD_DOWN (pull to ground) or PUD_UP (pull to 3.3v)

注意:上/下拉电阻阻值为50k。

PWM模式设置 pwmSetMode (int mode) mode:PWM_MODE_BAL or PWM_MODE_MS(平衡模式/占空比模式)

默认为:PWM_MODE_BAL模式

占空比设置 pwmSetRange (unsigned int range) range:0-1024,default:1024
分频设置 pwmSetClock (int divisor) divisor:PWM Clock分频值

分频值设置请参考:the Broadcom ARM peripherals manual

GPIO读写

int digitalRead (int pin) 返回值:HIGH or LOW
void digitalWrite (int pin, int value) value:HIGH or LOW
写入字节 void digitalWriteByte (int value) value:8位二进制值,直接写入wiring pi 0~7
调整占空比 void pwmWrite (int pin, int value) value:0-1024

延时函数

unsigned int millis (void)
返回32位无符号整数,表示自执行wiringPiSetup后所经历的毫秒数(ms),最大值为49天,溢出复位。
unsigned int micros (void)
返回32位无符号整数,表示自执行wiringPiSetup后所经历的微秒数(us),最大值为71分钟,溢出复位。
void delay (unsigned int howLong)
延时howLong毫秒,最大延时约49天。

注:linux为多任务系统,实际延时时间一定大于设定时间。

void delayMicroseconds (unsigned int howLong)
延时howLong微秒,最大延时约71分钟。

注:linux为多任务系统,实际延时时间一定大于设定时间。

中断

int waitForInterrupt (int pin, int timeOut)
在timeOut时间内等待指定pin中断,时间单位为ms。当timeOut = -1 时,表示永远等待中断。
返回值:-1,表示发生错误
0,表示超时
1,表示发生中断事件

注意:在使用本函数之前,必须初始化该管脚,可使用system()调用gpio,如:我们需要在GPIO pin 0等待下降沿中断,则必须在执行本函数之前运行:

gpio edge 0 falling
int wiringPiISR (int pin, int edgeType, void (*function)(void))
edgeType:INT_EDGE_FALLING, INT_EDGE_RISING, INT_EDGE_BOTH or INT_EDGE_SETUP
当指定中断发生时,执行自定义函数function。在执行function函数前会清除中断标志,在运行function函数期间发生的中断,只能保留运行期间发生的第一次中断。

参考:[1][2]

参考

  1. ^http://wiringpi.com/reference/
  2. ^PWM参数试验 https://zhuanlan.zhihu.com/p/252869569
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值