zoukankan      html  css  js  c++  java
  • 树莓派wiringPi经常使用的函数介绍

    

    1.void pinMode (int pin, int mode) ;

    这个函数式设置pin脚的输入和输出模式以及PWM的输入和输出模式。在wiringPi中仅仅有 pin 1 (BCM_GPIO 18)是支持PWM的输出的。

    2.void digitalWrite (int pin, int value) ;

    这个函数式用来设置pin脚的高低电平的,当我们写HIGH or LOW (1 or 0)的时候pin脚的mode必须为输出模式。

    3.void digitalWriteByte (int value) ;

    这个函数能够将8位字节写给8个GPIO pin脚,这是设置8个pin脚值的最快的方式。

    4.void pwmWrite (int pin, int value) ;

    这个函数是给PWM寄存器写入值然后控制GPIO的值的,写入的值必须是0-1024.

    5.int digitalRead (int pin) ;

    这个函数是读取GPIO的pin脚的电平高低然后返回读取的值。

    6.void pullUpDnControl (int pin, int pud) ;

    这个函数是设置GPIO的pin脚是否接上拉电阻和下拉电阻的。函数的參数pud必须设置。当设置为PUD_OFF时表示没有上拉电阻和下拉电阻。当设置为PUD_DOWN 时为下拉电阻。设置为PUD_UP是为上拉电阻。


    PWM的控制:

    1.pwmSetMode (int mode) ;

    这个函数是设置PWM的占空比模式一般为50%占空比和占空比可调模式。

    树莓派默认是50%占空比模式,我们能够通过PWM_MODE_BAL 和PWM_MODE_MS这两个參数来设置。


    2.pwmSetRange (unsigned int range) ;

    这个函数是设置PWM寄存器写入的范围。一般默觉得1024.

    3.pwmSetClock (int divisor) ;

    这个函数的设置PWM时钟的分频因子。


    定时函数:

    1.void delay (unsigned int howLong)

    这个是毫秒级的延时函数。

    2.void delayMicroseconds (unsigned int howLong)

    微秒级的延时函数


    关于中断的函数:

    1.int waitForInterrupt (int pin, int timeOut) ;

    这一个等待事件中断函数。timeout參数是毫秒级别的參数,当为-1时代表永远等待中断状态。假设错误发生返回值是-1,0表示超时。1表示成功中断。

    调用这个函数之前我们须要对GPIO进行初始化。

    比如我们要设置GPIO 0为等待下降沿中断:

    我们须要在执行程序之前先终端执行   gpio edge 0 falling

    2.int wiringPiISR (int pin, int edgeType,  void (*function)(void)) ;

    这个函数是利用一个函数作为參数来获取在特定的GPIO pin脚的中断。edge_Type參数能够设定为 INT_EDGE_FALLING, INT_EDGE_RISING, INT_EDGE_BOTH or INT_EDGE_SETUP.

    其中断发生的时候function将被调用。调用function之前会先清除对应的标志位。这就使得随后的中断不会被影响。



    熟悉了这些函数后对写GPIO的操作的应用程序会有所帮助。











  • 相关阅读:
    5个最佳WordPress通知栏插件
    最新lombok插件和IDEA2020.1不兼容,Plugin "Lombok" is incompatible (until build 193.SNAPSHOT < IU-201.6668....
    nuxt中localstorage的替代方案
    nuxt或者vue,axios中如何发送多个请求
    wordpress nginx详细环境配置安装命令和相关问题解决
    [no_perms] Private mode enable, only admin can publish this module
    vue bootstrap中modal对话框不显示遮挡打不开
    vue监听当前页面的地址变化/路由变化
    来看看JDK13的81个新特性和API
    Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test java.lang.IllegalStateException
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/6927084.html
Copyright © 2011-2022 走看看