|
最新发布的树莓派4B在烧录了官方系统buster以后,如果直接使用gpio readall去查看GPIO会出现错误。无法识别的情况,需要根据以下步骤进行wiringPi的更新: 登陆后打开一个终端输入: - cd /tmp: W4 Y# W& f$ @& Z/ y) N$ ^4 J
- wget https://project-downloads.drogon.net/wiringpi-latest.deb
7 S* W/ f: n( ^* z! r! I. _' i - sudo dpkg -i wiringpi-latest.deb
复制代码然后再使用 检查版本信息,确保版本为:2.52即可。  然后再执行:gpio readall
3 R5 G# y" N3 C- u0 J, s- +-----+-----+---------+------+---+---Pi A+--+---+------+---------+-----+-----+; f8 q- j9 K' x1 `# d, m! L
- | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
) |0 C8 J3 E! v: e* V, { - +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
( G$ y( K9 h2 i) P7 w4 R& N$ r - | | | 3.3v | | | 1 || 2 | | | 5v | | |0 {8 V- @7 c$ W, U/ o4 | t
- | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5v | | |/ s: T+ R# g7 ?7 m+ O% }1 w
- | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | |
# Y4 t& \" Y, m - | 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 |% f& e5 U2 \5 R6 F* R$ Z% R
- | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 |
8 p$ C7 I" X$ p4 O# A. P# N - | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 |
& ^: m" v; w8 ~9 {0 ] - | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |
& C( v, k" K% _, W6 _5 x - | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |
& v; w" o! e: ^& k - | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 |
4 q. z9 Z7 d4 E3 E! o0 E; x+ b - | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |# K- }) Z5 N# p' A: H; L& n! [, W
- | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 |( n' S/ }& D! j* d$ Q: p. {9 n' h
- | 11 | 14 | SCLK | OUT | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |
U; t1 C8 ]3 T! j - | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |! w+ D1 [) p) J+ y: e4 f' k
- | 0 | 30 | SDA.0 | OUT | 0 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
; b7 G; N; \0 j" X3 P' O4 c5 |. m - | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
1 w" a0 J1 y( W/ K! C" J - | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 |
# y0 v$ |7 V [2 \/ C9 | - | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | |
1 Z$ m, X) U6 c8 k! O ~; f - | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |# O! s+ J$ |. `$ L
- | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |
5 A/ F% `' J3 H" k. R - | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |4 H# j) u9 n' k7 i7 b
- +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
" |0 T" G$ j( b/ g- @8 M - | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
: M1 D: ^9 H* m( V! n2 }. |: z - +-----+-----+---------+------+---+---Pi A+--+---+------+---------+-----+-----+2 P D3 T7 I% @1 }$ X* k5 X2 j+ I
复制代码这时候就可以继续像往常那样使用GPIO的引脚进行编程了。 我们尝试一下使用gpio 引脚点亮一个LED灯。LED灯接在物理引脚12号,名称GPIO.1 针对WPi 引脚为1, BCM引脚为18号。 编写一个C源码:led.c  调用gcc编译: gcc -o led -lwiringPi led.c 执行: ./led 终端显示: 5 W+ d; R9 ~ ^# Q
由于手头的电阻阻值比较大,效果不明显,所以去掉了电阻,实际上大家应该加个220欧姆的电阻来保护LED 5 W4 B w' E! V& w
4 |2 l) f4 ?$ P* w" q q6 W3 Q
|