最新发布的树莓派4B在烧录了官方系统buster以后,如果直接使用gpio readall去查看GPIO会出现错误。无法识别的情况,需要根据以下步骤进行wiringPi的更新: 登陆后打开一个终端输入: - cd /tmp
c4 s8 O) p& L8 r5 P& ^+ U - wget https://project-downloads.drogon.net/wiringpi-latest.deb
; l6 I' _, ]4 Y1 s3 ^ - sudo dpkg -i wiringpi-latest.deb
复制代码然后再使用 检查版本信息,确保版本为:2.52即可。 然后再执行:gpio readall ) H2 V, t, Q) h1 {) X/ S' P
- +-----+-----+---------+------+---+---Pi A+--+---+------+---------+-----+-----+
1 p: f. U; f5 \ - | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |$ y, v ~) ^& e) Z, _
- +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+8 X! a. `1 }/ {" r8 V7 v& h
- | | | 3.3v | | | 1 || 2 | | | 5v | | |
$ X! m" ^1 R! U, Q# t0 X1 O - | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5v | | |
- {0 y7 p2 Y7 l$ w3 {: Z- ~3 a - | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | |) ?* a4 H+ T s/ P& b/ U2 B
- | 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 |
/ I( z& j/ i8 A, y - | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 |! D5 @) X; k e( `; ~! f+ ^
- | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 |( s( b" k9 q$ }; }& F, U
- | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |
& |4 v- {9 a3 x4 Y i* f - | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |
% J0 w' K# a1 b& [ - | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 |
9 n' e7 q, C! z6 k* C6 G/ Y4 e - | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |
( r7 l7 a u1 I - | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 |
$ H/ T" K9 Z2 j - | 11 | 14 | SCLK | OUT | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |9 n6 g! V8 T {4 f( F+ i6 H& ^
- | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |
, G9 K8 ~6 O( y7 i- H( E3 ^ - | 0 | 30 | SDA.0 | OUT | 0 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
3 W# Q# O/ m5 H, }3 n, `* q( l - | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
% b2 _$ w/ f. D) \6 ]1 y0 C - | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 |1 {* o# m' B/ P& ^, U
- | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | |
0 [8 o5 ?+ C0 F$ R" w, ? - | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |9 m6 ^/ q6 M! s' b8 Z
- | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |/ c% o/ \* ~) F; F+ I' @: m
- | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |3 ~8 q1 k4 f" D
- +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+% N/ H% {' v. U( Z3 `& E7 o6 O
- | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
! ?+ Y% I, X2 ] - +-----+-----+---------+------+---+---Pi A+--+---+------+---------+-----+-----+
: s6 d- f7 a8 q+ s# e& u
复制代码这时候就可以继续像往常那样使用GPIO的引脚进行编程了。 我们尝试一下使用gpio 引脚点亮一个LED灯。LED灯接在物理引脚12号,名称GPIO.1 针对WPi 引脚为1, BCM引脚为18号。 编写一个C源码:led.c 调用gcc编译: gcc -o led -lwiringPi led.c 执行: ./led 终端显示: ' f8 o0 m$ h+ C: l9 ~# X/ }% r
由于手头的电阻阻值比较大,效果不明显,所以去掉了电阻,实际上大家应该加个220欧姆的电阻来保护LED 8 a9 C% o) ^4 X5 [2 l/ A" r' S
4 }7 i/ P* A9 t. h3 w2 Z |