Управление GPIO из языка C


Предыдущая | Следующая

Для работы с GPIO на языке C требуется специальная библиотека bcm2835, скачать которую можно с сайта http://www.open.com.au/mikem/bcm2835/index.html. В по­мощь тем, кто привык писать программы для Arduino, Гордон Хендерсон (Gordon Henderson, https://projects.drogon.net/) написал Arduino-подобную библиотеку на C (WiringPi), которую мы и установим:

cd /tmp

wget http://project-downloads.drogon.net/files/wiringPi-1.tgz tar xfz wiringPi-1.tgz cd wiringPi/wiringPi

make

sudo make install

Для примера напишем с использованием библиотеки wiringPi программу мигания светодиодом, подключенным к выводу GPIO4, с периодичностью 2 секунды. Светодиод подключаем к контакту GPIO4(7) и через резистор 220 Ом на "землю". Текст этой программы (файл blink.c) представлен в листинге 6.3.

Листинг 6.3. Файл blink.c

#include <wiringPi.h>

#include <stdio.h>

int main (void)

{

int pin = 7;

printf("Raspberry Pi wiringPi blink test\n");

if (wiringPiSetup() == -1) exit (1);

pinMode(pin, OUTPUT);

for (;;){

printf("LED On\n"); digitalWrite(pin, 1); delay(1000); printf("LED Off\n"); digitalWrite(pin, 0); delay(1000);

}

return 0;

}

Компилируем код:

gcc -o blink blink.c -L/usr/local/lib -lwiringPi

И запускаем:

sudo ./blink

Светодиод должен мигать.