樹莓派_GPIO引腳操作_wiringPi的安裝與使用
阿新 • • 發佈:2019-01-10
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。