[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;    
}   

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。