Difference between revisions of "WiringPi for RK3399/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
 
(updated by API)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[WiringNP: NanoPi NEO/NEO2/Air GPIO Programming with C|English]]
+
[[WiringPi for RK3399|English]]
  
==WiringPi简介==
+
==wiringPi简介==
 
wiringPi库最早是由Gordon Henderson所编写并维护的一个用C语言写成的类库,除了GPIO库,还包括了I2C库、SPI库、UART库和软件PWM库等,由于wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。<br />
 
wiringPi库最早是由Gordon Henderson所编写并维护的一个用C语言写成的类库,除了GPIO库,还包括了I2C库、SPI库、UART库和软件PWM库等,由于wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。<br />
 
wiringPi库除了提供wiringPi类库及其头文件外,还提供了一个命令行工具gpio:可以用来设置和读写GPIO管脚,以方便在Shell脚本中控制GPIO管脚。<br />
 
wiringPi库除了提供wiringPi类库及其头文件外,还提供了一个命令行工具gpio:可以用来设置和读写GPIO管脚,以方便在Shell脚本中控制GPIO管脚。<br />
  
wiringPi库最初是为BCM2835芯片编写的,后被移植到Allwinner平台,针对NanoPi的wiringPi衍生版本其项目命名为WiringNP,目前支持[[NanoPi M1]]、[[NanoPi M1 Plus]][[NanoPi NEO]]、[[NanoPi NEO Air]]、[[NanoPi NEO2]]和[[NanoPi NEO Plus2]]开发板, 最初版本是由[https://github.com/wertyzp 网友wertyzp]提供的版本,而针对NEO2的H5版本由FriendlyELEC提供支持。<br />
+
wiringPi库最初是为BCM2835芯片编写的,现已移植到FriendlyELEC-RK3399平台,目前支持[[NanoPi M4]]、[[NanoPi NEO4]]、和[[NanoPC-T4]]开发板。<br />
 
<br />
 
<br />
WiringNP项目主页: https://github.com/friendlyarm/WiringNP<br />
+
当前提供的WiringPi版本:2.44<br />
 +
WiringPi项目主页: http://wiringpi.com<br />
 +
<br />
 +
我们同时为FriendlyELEC-RK3399平台提供了wiringPi的Python版本,请前往这里查看: [[WiringPi-Python for RK3399/zh]]<br />
  
==WiringNP在NEO/NEO Air/NEO2/NEO Plus2上的安装==
+
==支持的OS==
通过ssh,或者串口终端进入开发板的命令行,从 github 上下载WiringNP代码并编译安装: <br />
+
* FriendlyCore
<syntaxhighlight lang="bash">
+
* FriendlyDesktop
git clone https://github.com/friendlyarm/WiringNP
+
注:最新版本ROM中已经默认预装 wiringPi,也可以参照本文的方法手动安装
cd WiringNP/
+
chmod 755 build
+
./build
+
</syntaxhighlight>
+
  
==WiringNP在NanoPi M1/M1 Plus上的安装==
+
==支持的开发板==
通过ssh,或者串口终端进入开发板的命令行,从 github 上下载WiringNP代码并编译安装: <br />
+
* NanoPC T4
 +
* NanoPi M4
 +
* NanoPi NEO4
 +
 
 +
==wiringPi在T4/M4/NEO4上的安装==
 +
通过ssh,或者串口终端进入开发板的命令行,用以下命令安装: <br />
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
git clone https://github.com/friendlyarm/WiringNP
+
# 删除旧的实现
cd WiringNP/
+
wget http://112.124.9.243/wiringpi/remove_oldversion_wiringPi.sh
git checkout nanopi-m1
+
chmod 755 remove_oldversion_wiringPi.sh
chmod 755 build
+
sudo ./remove_oldversion_wiringPi.sh
./build
+
# 下载并安装wiringPi for RK3399
 +
wget wget http://112.124.9.243/wiringpi/wiringpi-v2.44-friendlyelec-rk3399.deb
 +
sudo dpkg -i  wiringpi-v2.44-friendlyelec-rk3399.deb
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
==== 测试安装 ====
 
==== 测试安装 ====
WiringNP包括一套gpio命令,使用gpio命令可以控制NanoPi上的各种接口,通过以下指令可以测试WiringNP是否安装成功:
+
通过以下指令可以测试wiringPi是否安装成功:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
gpio readall
 
gpio readall
 
</syntaxhighlight>
 
</syntaxhighlight>
如果安装成功会显示NanoPI的IO图,例如NanoPI NEO2会显示如下信息:
+
如果安装成功会显示开发板的针脚布局,例如NanoPi M4会显示如下信息:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
root@FriendlyARM:~# gpio readall
+
root@NanoPi-M4:~# gpio readall
  +-----+-----+----------+------+---+-NanoPi NEO/NEO2--+------+----------+-----+-----+
+
  +------+-----+----------+------+ Model  NanoPi-M4 +------+----------+-----+------+
  | BCM | wPi |  Name  | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
+
  | GPIO | wPi |  Name  | Mode | V | Physical | V | Mode |   Name   | wPi | GPIO |
  +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
+
  +------+-----+----------+------+---+----++----+---+------+----------+-----+------+
  |     |    |    3.3V |      |  |  1 || 2  |  |      | 5V      |    |     |
+
  |     |    |    3.3V |      |  |  1 || 2  |  |      | 5V      |    |     |
  | 12 |   8 | GPIOA12 | OFF | 0 |  3 || 4  |  |      | 5V      |    |     |
+
  |     |     | I2C2_SDA |     |   |  3 || 4  |  |      | 5V      |    |     |
  | 11 |   9 | GPIOA11 | OFF | 0 |  5 || 6  |  |      | 0v      |    |     |
+
  |     |     | I2C2_SCL |     |   |  5 || 6  |  |      | GND(0V)  |    |     |
  | 203 |  7 | GPIOG11 |  OUT | 1 |  7 || 8  | 0 | OFF | GPIOG6  | 15  | 198 |
+
  |   32 |  7 | GPIO1_A0 |  OUT | 0 |  7 || 8  |   | ALT | GPIO4_C1 | 15  | 145 |
  |     |    |       0v |      |  |  9 || 10 | 0 | OFF | GPIOG7  | 16  | 199 |
+
  |     |    | GND(0V) |      |  |  9 || 10 |   | ALT | GPIO4_C0 | 16  | 144 |
  |  0 |  0 |  GPIOA0 |  OFF | 0 | 11 || 12 | 0 | OFF  | GPIOA6   | 1  | |
+
  |  33 |  0 | GPIO1_A1 IN | 0 | 11 || 12 | 1 | IN   | GPIO1_C2 | 1  | 50  |
  |  2 |  2 |  GPIOA2 |  OFF | 0 | 13 || 14 |  |      | 0v      |    |     |
+
  |  35 |  2 | GPIO1_A3 IN | 0 | 13 || 14 |  |      | GND(0V)  |    |     |
  |  3 |  3 |  GPIOA3 |  OFF | 0 | 15 || 16 | 0 | OFF  | GPIOG8   | 4  | 200 |
+
  |  36 |  3 | GPIO1_A4 IN | 0 | 15 || 16 | 0 | IN   | GPIO1_C6 | 4  | 54  |
  |     |    |    3.3v |      |  | 17 || 18 | 0 | OFF  | GPIOG9   | 5  | 201 |
+
  |     |    |    3.3V |      |  | 17 || 18 | 0 | IN   | GPIO1_C7 | 5  | 55  |
  | 64 | 12 |   GPIOC0 | OFF | 0 | 19 || 20 |  |      | 0v      |    |     |
+
  |     |     | UART4_TX |     |   | 19 || 20 |  |      | GND(0V)  |    |     |
  | 65 | 13 |   GPIOC1 | OFF | 0 | 21 || 22 | 0 | OFF  | GPIOA1  | 6  | |
+
  |     |     | UART4_RX |     |   | 21 || 22 | 0 | IN  | GPIO1_D0 | 6  | 56  |
  | 66 | 14 |   GPIOC2 | OFF | 0 | 23 || 24 | 0 | OFF | GPIOC3   | 10 | 67 |
+
  |     |     | SPI1_CLK |     |   | 23 || 24 |   |     | SPI1_CSn |    |      |
  +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
+
  |     |    |  GND(0V) |      |   | 25 || 26 |  | ALT | GPIO4_C5 | 11 |  149 |
  | BCM | wPi Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
+
  |      |    | I2C2_SDA |      |  | 27 || 28 |  |      | I2C2_SCL |    |      |
  +-----+-----+----------+------+---+-NanoPi NEO/NEO2--+------+----------+-----+-----+
+
  |     |     | I2S0_LRX |      | 29 || 30 |   |     | GND(0V)  |     |     |
 
+
|      |    | I2S0_LTX |     |  | 31 || 32 |  |      | I2S_CLK  |    |      |
  +-----+----NanoPi NEO/NEO2 Debug UART-+----+
+
  |      |    | I2S0_SCL |      |  | 33 || 34 |  |      | GND(0V)  |    |      |
  | BCM | wPi Name   | Mode | V | Ph |
+
|      |    | I2S0SDI0 |      |  | 35 || 36 |  |      | I2S0SDO0 |    |      |
  +-----+-----+----------+------+---+----+
+
  |      |    | I2S0I1O3 |      |  | 37 || 38 |  |      | I2S0I2O2 |    |      |
|  4 |  17 |  GPIOA4 | ALT5 | 0 | 37 |
+
  |     |     |  GND(0V) |      | 39 || 40 |   |     | I2S0I3O1 |     |      |
|  5 |  18 |  GPIOA5 | ALT4 | 0 | 38 |
+
  +------+-----+----------+------+---+----++----+---+------+----------+-----+------+
+-----+-----+----------+------+---+----+
+
root@NanoPi-M4:~#
 
</syntaxhighlight>
 
</syntaxhighlight>
  
==WiringNP示例==
+
==wiringPi示例==
以NanoPi  NEO2为例,将一个[[Matrix - LED]]通过连接至NanoPi  NEO2,像下图这样:<br />
+
将一个[[Matrix - LED]]通过连接至开发板,引脚的连接对应如下:<br />
[[File:WiringNP-LED-Demo.jpg|frameless|300px|WiringNP-LED-Demo]]<br />
+
其中,引脚的连接对应如下:<br />
+
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
|Matrix-LED || NanoPi M1
+
|Matrix-LED || T4/M4/NEO4开发板
 
|-
 
|-
 
|S    || Pin7
 
|S    || Pin7
Line 78: Line 82:
 
|}
 
|}
  
接下来我们用WiringNP实现一个LED闪烁的例子, <br />
+
接下来我们用wiringPi实现一个LED闪烁的例子, <br />
在代码中使用数字7来操作Pin7这个引脚,即引脚的编号直接使用物理编号:  <br />
+
在代码中使用数字7来操作Pin7这个引脚:  <br />
  
 
=== C语言示例 ===
 
=== C语言示例 ===
Line 104: Line 108:
 
编译test.c并运行:
 
编译test.c并运行:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
gcc -Wall -o test test.c -lwiringPi -lpthread
+
gcc -Wall -o test test.c -lwiringPi -lwiringPiDev -lpthread -lrt -lm -lcrypt
 
sudo ./test  
 
sudo ./test  
 
</syntaxhighlight>
 
</syntaxhighlight>
 
看到LED灯一闪一闪的,就表示成功了。
 
看到LED灯一闪一闪的,就表示成功了。
 
=== PWM示例 ===
 
PWM在NanoPi  NEO/NEO2上的针脚与SerialPort0是复用的,所以你需要先执行 sudo npi-config 命令,进入Advanced Options菜单,执行其中的Enable/Disable PWM操作,将PWM针脚启用后,方可使用PWM功能,注意,在启用PWM之后,SerialPort0接口将不可使用,所以你需要使用ssh终端来进行操作。<br />
 
<br />
 
以NanoPi  NEO2为例,参照下图将一个[[Matrix - Buzzer]]配置连接至NanoPi  NEO2:<br />
 
[[File:WiringNP-PWM-Demo.jpg|frameless|300px|WiringNP-PWM-Demo]]<br />
 
 
然后,创建一个C源文件:<br />
 
<syntaxhighlight lang="bash">
 
vi pwmtest.c
 
</syntaxhighlight>
 
然后键入如下代码:
 
<syntaxhighlight lang="c">
 
#include <wiringPi.h>
 
#include <stdio.h>
 
#include <stdlib.h>
 
#include <stdint.h>
 
int main (void)
 
{
 
  int l ;
 
  printf ("PWM test program\n") ;
 
 
  //using wiringPi Pin Number
 
  int pin = 18;             
 
  if (wiringPiSetup () == -1)
 
    exit (1) ;             
 
             
 
  /*
 
  //using Physical Pin Number
 
  int pin = 38;             
 
  if (wiringPiSetupPhys() == -1)
 
    exit (1) ;                 
 
  */                           
 
             
 
  /*
 
  //using BCM Pin Number
 
  int pin = 5;         
 
  if (wiringPiSetupGpio() == -1)
 
    exit (1);                 
 
  */                           
 
                           
 
  pinMode (pin, PWM_OUTPUT);
 
  for (;;) {                     
 
    for (l = 0 ; l < 1024 ; ++l) {
 
      pwmWrite (pin, l) ;       
 
      delay (1) ;       
 
    }                             
 
    for (l = 1023 ; l >= 0 ; --l) {
 
      pwmWrite (pin, l) ;         
 
      delay (1) ;       
 
    }           
 
  }       
 
  return 0 ;
 
}
 
</syntaxhighlight>
 
编译pwmtest.c并运行:
 
<syntaxhighlight lang="bash">
 
gcc -Wall -o pwmtest pwmtest.c -lwiringPi -lpthread
 
sudo ./pwmtest
 
</syntaxhighlight>
 
可听到PWM蜂鸣器响起。
 
  
 
=== Shell示例 ===
 
=== Shell示例 ===
Line 192: Line 135:
 
会看到LED闪烁了。
 
会看到LED闪烁了。
  
==WiringNP 常用API速查==
+
=== Python示例 ===
 +
请前往这里查看: [[WiringPi-Python for RK3399/zh]]
 +
 
 +
==wiringPi 常用API速查==
 
=== 初始化函数 ===
 
=== 初始化函数 ===
 
==== wiringPiSetup (void) ====
 
==== wiringPiSetup (void) ====
Line 222: Line 168:
 
不同于Arduino,CPU有内部上拉和下拉电阻这两种模式。<br />
 
不同于Arduino,CPU有内部上拉和下拉电阻这两种模式。<br />
 
参数pud可以为PUD_OFF(无上拉或下拉电阻)、PUD_DOWN(内部下拉至地线)或者PUD_UP(内部上拉至3.3V)。<br />
 
参数pud可以为PUD_OFF(无上拉或下拉电阻)、PUD_DOWN(内部下拉至地线)或者PUD_UP(内部上拉至3.3V)。<br />
在NanoPi M1上,内部上拉和下拉电阻有接近100KΩ。<br />
 
 
该函数在Sys模式下无作用。<br />
 
该函数在Sys模式下无作用。<br />
 
如果你需要激活上拉或下拉电阻的话,在启动程序前,可以通过在脚本中调用GPIO命令来实现。
 
如果你需要激活上拉或下拉电阻的话,在启动程序前,可以通过在脚本中调用GPIO命令来实现。
Line 245: Line 190:
  
 
==更新日志==
 
==更新日志==
===2017-05-24===
+
===2018-11-10===
补充配件连接的图片
+
首次发布
 
+
===2017-05-17===
+
补充NanoPi M1的安装说明,NEO/NEO2与M1使用不同的代码分支
+
 
+
===2017-05-16===
+
1) 增加 NEO2 的支持
+
2) 增加PWM操作的示例代码
+

Latest revision as of 06:49, 6 September 2023

English

1 wiringPi简介

wiringPi库最早是由Gordon Henderson所编写并维护的一个用C语言写成的类库,除了GPIO库,还包括了I2C库、SPI库、UART库和软件PWM库等,由于wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。
wiringPi库除了提供wiringPi类库及其头文件外,还提供了一个命令行工具gpio:可以用来设置和读写GPIO管脚,以方便在Shell脚本中控制GPIO管脚。

wiringPi库最初是为BCM2835芯片编写的,现已移植到FriendlyELEC-RK3399平台,目前支持NanoPi M4NanoPi NEO4、和NanoPC-T4开发板。

当前提供的WiringPi版本:2.44
WiringPi项目主页: http://wiringpi.com

我们同时为FriendlyELEC-RK3399平台提供了wiringPi的Python版本,请前往这里查看: WiringPi-Python for RK3399/zh

2 支持的OS

  • FriendlyCore
  • FriendlyDesktop

注:最新版本ROM中已经默认预装 wiringPi,也可以参照本文的方法手动安装

3 支持的开发板

  • NanoPC T4
  • NanoPi M4
  • NanoPi NEO4

4 wiringPi在T4/M4/NEO4上的安装

通过ssh,或者串口终端进入开发板的命令行,用以下命令安装:

# 删除旧的实现
wget http://112.124.9.243/wiringpi/remove_oldversion_wiringPi.sh
chmod 755 remove_oldversion_wiringPi.sh
sudo ./remove_oldversion_wiringPi.sh
# 下载并安装wiringPi for RK3399
wget wget http://112.124.9.243/wiringpi/wiringpi-v2.44-friendlyelec-rk3399.deb
sudo dpkg -i  wiringpi-v2.44-friendlyelec-rk3399.deb

4.1 测试安装

通过以下指令可以测试wiringPi是否安装成功:

gpio readall

如果安装成功会显示开发板的针脚布局,例如NanoPi M4会显示如下信息:

root@NanoPi-M4:~# gpio readall
 +------+-----+----------+------+ Model  NanoPi-M4 +------+----------+-----+------+
 | GPIO | wPi |   Name   | Mode | V | Physical | V | Mode |   Name   | wPi | GPIO |
 +------+-----+----------+------+---+----++----+---+------+----------+-----+------+
 |      |     |     3.3V |      |   |  1 || 2  |   |      | 5V       |     |      |
 |      |     | I2C2_SDA |      |   |  3 || 4  |   |      | 5V       |     |      |
 |      |     | I2C2_SCL |      |   |  5 || 6  |   |      | GND(0V)  |     |      |
 |   32 |   7 | GPIO1_A0 |  OUT | 0 |  7 || 8  |   | ALT  | GPIO4_C1 | 15  |  145 |
 |      |     |  GND(0V) |      |   |  9 || 10 |   | ALT  | GPIO4_C0 | 16  |  144 |
 |   33 |   0 | GPIO1_A1 |   IN | 0 | 11 || 12 | 1 | IN   | GPIO1_C2 | 1   |  50  |
 |   35 |   2 | GPIO1_A3 |   IN | 0 | 13 || 14 |   |      | GND(0V)  |     |      |
 |   36 |   3 | GPIO1_A4 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO1_C6 | 4   |  54  |
 |      |     |     3.3V |      |   | 17 || 18 | 0 | IN   | GPIO1_C7 | 5   |  55  |
 |      |     | UART4_TX |      |   | 19 || 20 |   |      | GND(0V)  |     |      |
 |      |     | UART4_RX |      |   | 21 || 22 | 0 | IN   | GPIO1_D0 | 6   |  56  |
 |      |     | SPI1_CLK |      |   | 23 || 24 |   |      | SPI1_CSn |     |      |
 |      |     |  GND(0V) |      |   | 25 || 26 |   | ALT  | GPIO4_C5 | 11  |  149 |
 |      |     | I2C2_SDA |      |   | 27 || 28 |   |      | I2C2_SCL |     |      |
 |      |     | I2S0_LRX |      |   | 29 || 30 |   |      | GND(0V)  |     |      |
 |      |     | I2S0_LTX |      |   | 31 || 32 |   |      | I2S_CLK  |     |      |
 |      |     | I2S0_SCL |      |   | 33 || 34 |   |      | GND(0V)  |     |      |
 |      |     | I2S0SDI0 |      |   | 35 || 36 |   |      | I2S0SDO0 |     |      |
 |      |     | I2S0I1O3 |      |   | 37 || 38 |   |      | I2S0I2O2 |     |      |
 |      |     |  GND(0V) |      |   | 39 || 40 |   |      | I2S0I3O1 |     |      |
 +------+-----+----------+------+---+----++----+---+------+----------+-----+------+
root@NanoPi-M4:~#

5 wiringPi示例

将一个Matrix - LED通过连接至开发板,引脚的连接对应如下:

Matrix-LED T4/M4/NEO4开发板
S Pin7
V Pin4
G Pin6

接下来我们用wiringPi实现一个LED闪烁的例子,
在代码中使用数字7来操作Pin7这个引脚:

5.1 C语言示例

创建一个C源文件:

vi test.c

然后键入如下代码:

#include <wiringPi.h>
int main(void)
{
  wiringPiSetup() ;
  pinMode (7, OUTPUT) ;
  for(;;)
  {
    digitalWrite(7, HIGH) ;
    delay (500) ;
    digitalWrite(7,  LOW) ;
    delay (500) ;
  }
}

编译test.c并运行:

gcc -Wall -o test test.c -lwiringPi -lwiringPiDev -lpthread -lrt -lm -lcrypt
sudo ./test

看到LED灯一闪一闪的,就表示成功了。

5.2 Shell示例

创建一个shell脚本:

vi test.sh

然后键入如下代码:

LED=7
gpio mode $LED out
while true; do
  gpio write $LED 1
  sleep 0.5
  gpio write $LED 0
  sleep 0.5
done

运行脚本:

sudo source test.sh

会看到LED闪烁了。

5.3 Python示例

请前往这里查看: WiringPi-Python for RK3399/zh

6 wiringPi 常用API速查

6.1 初始化函数

6.1.1 wiringPiSetup (void)

该函数初始化wiringPi,并假定程序将使用wiringPi的管脚定义图。具体管脚映射,可以通过gpio readall命令来查看。
该函数需要root权限。

6.1.2 int wiringPiSetupGpio(void)

该函数和wiringPiSetup函数类似,区别在于假定程序使用的是CPU的GPIO管脚定义,而没有重新映射。
该函数需要root权限。

6.1.3 int wiringPiSetupPhys (void)

该函数和wiringPiSetup函数类似,区别在于不允许程序使用物理管脚定义,仅支持P1接口。
该函数需要root权限。

6.1.4 int wiringPiSetupSys (void)

该函数初始化wiringPi,使用/sys/class/gpio接口,而不是直接通过操作硬件来实现。
该函数可以使用非root权限用户,在此种模式下的管脚号是CPU的GPIO管脚号,和wiringPiSetupGpio函数类似。
在此种模式下,在运行程序前,您需要通过/sys/class/gpio接口导出要使用的管脚。
你可以在一个独立的shell脚本中来导出将要使用的管脚,或者使用系统的system()函数来调用GPIO命令。

6.2 核心函数

6.2.1 void pinMode (int pin, int mode)

使用该函数可以将某个引脚配置为INPUT(输入) OUTPUT(输出)PWM_OUTPUT(脉冲输出)或者GPIO_CLOCK(时钟)。
在Sys模式下,这个函数没有影响。
你可以通过调用GPIO命令在shell脚本中来设置管脚的模式。

6.2.2 void pullUpDnControl (int pin, int pud)

使用该函数可以设置指定管脚使用上拉或者下拉电阻模式,通常当需要管脚作为输入引脚时,需要设定此项。
不同于Arduino,CPU有内部上拉和下拉电阻这两种模式。
参数pud可以为PUD_OFF(无上拉或下拉电阻)、PUD_DOWN(内部下拉至地线)或者PUD_UP(内部上拉至3.3V)。
该函数在Sys模式下无作用。
如果你需要激活上拉或下拉电阻的话,在启动程序前,可以通过在脚本中调用GPIO命令来实现。

6.2.3 void digitalWrite (int pin, int value)

使用该函数可以向指定的管脚写入HIGH(高)或者LOW(低),写入前,需要将管脚设置为输出模式。
wiringPi将任何的非0值作为HIGH(高)来对待,因此,0是唯一能够代表LOW(低)的数值。

6.2.4 void pwmWrite (int pin, int value)

使用该函数可以将值写入指定管脚的PWM寄存器中,可设置的值为0~1024,其他PWM讴备可能有不同的PWM范围。
当在Sys模式时,该函数不可用来控制板上PWM。

6.2.5 digitalRead(int pin);

使用该函数可以读取指定管脚的值,读取到的值为HIGH(1)或者LOW(0),该值取决于该管脚的逻辑电平的高低。

6.2.6 analogRead (int pin) ;

该函数返回所指定的模拟输入管脚的值。你需要添加额外的模拟模块来使用该函数,比如Gertboard,quick2Wire模拟板等。

6.2.7 analogWrite (int pin, int value) ;

该函数将指定的值写入到指定的管脚。你需要添加额外的模拟模块来使用该函数,比如Gertboard等。


7 更新日志

7.1 2018-11-10

首次发布