1. 程式人生 > >樹莓派_GPIO引腳操作_wiringPi的安裝與使用

樹莓派_GPIO引腳操作_wiringPi的安裝與使用

1.簡介wiringPi

wiringPi安裝好這個庫後可以直接呼叫函式配置和控制GPIO功能

下圖中左邊是wiringPi封裝好後的引腳,右邊是樹莓派本身的引腳(bcm2835庫也使用它)


還有一張圖可以參考:


2.樹莓派中安裝wiringPi方法:

mkdir temp
cd temp
wget http://project-downloads.drogon.net/files/wiringPi.tgz
tar xf wiringPi.tgz
cd wiringPi/wiringPi/
make
make install

測試LED的程式:
#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
 
int main (int argc,char* argv[])
{
  if (argc < 2) {
    printf("Usage example: ./led 4 \n");
    return 1;
  }
  int pinNumber = atoi(argv[1]);
 
  if (-1 == wiringPiSetup()) {
    printf("Setup wiringPi failed!");
    return 1;
  }
 
  pinMode(pinNumber, OUTPUT); // set mode to output 
  while(1) {
    digitalWrite(pinNumber, 1); // output a high level 
    delay(800);
    digitalWrite(pinNumber, 0); // output a low level 
    delay(800);
  }
 
  return 0;
}


3.相關問題

使用wiringPi的程式進行測試編譯時出現瞭如下問題:

/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../libwiringPi.so:undefined reference to `i2c_smbus_write_byte'
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../libwiringPi.so:undefined reference to `i2c_smbus_read_byte'
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../libwiringPi.so:undefined reference to `i2c_smbus_write_byte_data'


/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../libwiringPi.so:undefined reference to `i2c_smbus_write_word_data'
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../libwiringPi.so:undefined reference to `i2c_smbus_read_word_data'
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../libwiringPi.so:undefined reference to `i2c_smbus_read_byte_data'

collect2: ld returned 1 exit status

網上少個相關資料,發現是少裝了庫的原因:

需要安裝這幾個庫: i2c-tools,libi2c-dev ,python-smbus

執行命令sudo apt-get install libi2c-dev ,會自動安裝這三個。

然後重新編譯就可以了。

make clean

sudo make uninstall

make

sudo make install

之後就能正常編譯了,別忘了最後要加連線動態庫的選項  -l wiringPi