ADS

2013年4月6日 星期六

[Raspberry Pi]用C語言控制GPIO Blink



在root底下輸入wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.25.tar.gz 下載此函式庫,然後輸入以下指令



tar zxvf bcm2835-1.25.tar.gz
cd bcm2835-1.25
./configure
make
sudo make check
sudo make install

安裝好之後可以在資料夾底下看到有example進入blink隨後輸入以下指令
gcc -o blink -l rt blink.c -l bcm2835
sudo ./blink

這是blink的範例Code

#include <bcm2835.h> 
// Blinks on RPi pin GPIO 11 
#define PIN RPI_GPIO_P1_11 
int main(int argc, char **argv) { 
// If you call this, it will not actually access the GPIO 
// Use for testing 
// bcm2835_set_debug(1);

 if (!bcm2835_init()) 
return 1; 
// Set the pin to be an output 
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP); 

// Blink 
while (1) { 
// Turn it on 
bcm2835_gpio_write(PIN, HIGH); 
// wait a bit 
delay(500); 
// turn it off 
bcm2835_gpio_write(PIN, LOW); 
// wait a bit 
delay(500); 
}
 return 0;
}

這裡的PIN 11就是指下圖的GPIO17,3.3V是pin 1右邊的5V是pin 2、GPIO 0是pin 3以此類推

參考網站還有很多其他語言的範例解說
參考網站:
http://www.airspayce.com/mikem/bcm2835/
http://elinux.org/RPi_Low-level_peripherals#C_3
了解BCM2835函式庫http://www.airspayce.com/mikem/bcm2835/group__gpio.html

1 則留言: