[Raspberry PI CM4] BCM2835 C Library
树莓派的引脚
- 第一列是wiringPi API中的缺省编号,wiringPiSetup()采用这列编号
- 第二列(Name)往往是转接板的编号
- 第三列是树莓派板子上的自然编号(左边引脚为1-15,右边引脚为2-26),RPi.GPIO.setmode(GPIO.BOARD)采用这列编号
树莓派主芯片提供商Broadcom的编号方法,
相当于调用了WiringPiSetupGpio()或RPi.GPIO.setmode(GPIO.BCM)采用这列编号
BCM2835 C Library
- 【开发语言】——C语言
- 【简单介绍】BCM2835 C Library可以理解为使用C语言实现的相关底层驱动,BCM2835 C Library的驱动库包括GPIO、SPI和UART等,可以通过学习BCM2835 C Library熟悉BCM2835相关的寄存器操作。如果有机会开发树莓派上的Linux驱动,或自主开发python或PHP扩展驱动,可以从BCM2835 C Library找到不少的“灵感”。
- 【官方网站】—— http://www.airspayce.com/mikem/bcm2835/
安装驱动
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.68.tar.gz
tar zxvf bcm2835-1.68.tar.gz
cd bcm2835-1.68/
sudo ./configure
sudo make
sudo make check
sudo make install
程序例子
#include <bcm2835.h>
// P1插座第11脚
#define PIN RPI_GPIO_P1_11
int main(int argc, char **argv)
{
if (!bcm2835_init())
return 1;
// 输出方式
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
while (1)
{
bcm2835_gpio_write(PIN, HIGH);
bcm2835_delay(100);
bcm2835_gpio_write(PIN, LOW);
bcm2835_delay(100);
}
bcm2835_close();
return 0;
}