What is WiringPi
WiringPi is a GPIO Controller basic on C Program. Originally a library for Raspberry Pie. Now we have migrated to Edge-V. You can control the 40 pin header by it. Of course, you can also directly control all GPIOs by modifying the code.
Begin to Use WiringPi
Control command
- run
gpio -h
, you can see all the control command with WiringPi.
gpio: Usage: gpio -v
gpio -h
gpio [-g|-1] ...
gpio [-d] ...
[-x extension:params] [[ -x ...]] ...
gpio [-p] <read/write/wb> ...
gpio <mode/read/write/aread/awritewb/pwm/pwmTone/clock> ...
gpio <toggle/blink> <pin>
gpio readall
gpio unexportall/exports
gpio export/edge/unexport ...
gpio wfi <pin> <mode>
gpio drive <group> <value>
gpio pwm-bal/pwm-ms
gpio pwmr <range>
gpio pwmc <divider>
gpio load spi/i2c
gpio unload spi/i2c
gpio i2cd/i2cdetect
gpio rbx/rbd
gpio wb <value>
gpio usbp high/low
gpio gbr <channel>
gpio gbw <channel> <value>
- run
gpio readall
, It prints a table showing the status of all pins.
You will see a table with many columns.
GPIO --> GPIO native number
wPi --> WiringPi number
Mode --> GPIO Mode ,`ALT` mean that this pin defined as a special function
V --> 1:HIGH 0:low
PU/PD --> PU:pull up PD:pull down DSBLD:disabled PU/PD
Control by command
The code defaults to wPi mode control
Here’s an example of controlling wPi number 14.
- run
gpio mode 14 out
Now, The wPi number 14 mode is out. - run
gpio write 14 0
to change the pinout level
rk3399:/ # gpio mode 14 out
rk3399:/ # gpio write 14 0
rk3399:/ # gpio read 14
0
rk3399:/ # gpio write 14 1
rk3399:/ # gpio read 14
1
GPIO mode control
which controls all GPIOs directly by modifying the code as follows:
--- a/wiringPi/wiringPi.c
+++ b/wiringPi/wiringPi.c
@@ -793,7 +793,7 @@ int wiringPiSetup(void)
initialiseEpoch();
- libwiring.mode = MODE_PINS;
+ libwiring.mode = MODE_GPIO;
return 0;
}
Here’s an example of controlling gpio number 6,which control white LED lights on and off.
rk3399:/ # gpio mode 6 out
rk3399:/ # gpio write 6 0
rk3399:/ # gpio read 6
0
rk3399:/ # gpio write 6 1
rk3399:/ # gpio read 6
1
notes
WiringPi itself includes many functions, not just controlling the output of GPIO pins and reading pin levels. Here is only a simple introduction and use, more use needs to be explored by users themselves.