works:programmer:cpp:rpigpio

Raspberry Pi - GPIO bcm2835.h

Скачивал с официального сайта https://www.airspayce.com/mikem/bcm2835/index.html и ставил по ихней-же инструкции…

wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.59.tar.gz
tar zxvf bcm2835-1.xx.tar.gz
cd bcm2835-1.xx
./configure
make
sudo make check
sudo make install

Далее создаём отдельную папку и пихаем в неё вот такой вот C++ скрипт

gpioscr.cpp
#include <iostream>
#include <chrono>
 
#include <bcm2835.h>
#include <unistd.h>
 
using namespace std;
 
// which GPIO17
#define PIN_01 RPI_GPIO_P1_11
// which GPIO4
#define PIN_02 RPI_GPIO_P1_07
 
int main(int, char**) {
    cout << "starting service..." << endl;
 
    // bcm2835_set_debug(1);
 
    if (!bcm2835_init()) {
        return 1;
    }
 
    bcm2835_gpio_fsel( PIN_02, BCM2835_GPIO_FSEL_OUTP);
 
    int t = 0;
 
    while (t++ < 1000) {
        usleep(50000L);
        bcm2835_gpio_write( PIN_02, HIGH);
        cout << "HIGH" << endl;
 
        usleep(50000L);
        bcm2835_gpio_write( PIN_02, LOW);
        cout << "LOW" << endl;
    }
    bcm2835_close();
    return 0;
}

Ну и конечно-же под него Makefile где первая строка `ECIPEPREFIX` это префикс блока в обычности это [TAB] но у меня 4 пробела. RPi я использую только через терминал и пишу в Vim'е…

makefile
ECIPEPREFIX +=
 
all: gpioscr
 
gpioscr: gpioscr.o
	g++ -std=c++11 gpioscr.o -o gpioscr -l bcm2835
 
gpioscr.o:
	g++ -Wall -c gpioscr.cpp
 
clean:
	rm -rf *.o gpioscr

Далее подрубаем лампочку к (см. картинку), сохраняем файлы и пишем в консоли..

make clean
make all
./gpioscr

И прёмся от быстро загорающейся лампочки…

pins1.jpg

works/programmer/cpp/rpigpio.txt · Last modified: 2019/07/08 01:59 by Chugreev Eugene