Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

WiringPiでRasPiのインターフェイスをC言語経由で扱う

WiringPiというライブラリを使うと、RasPiのインターフェイスC言語経由で扱うことができます。
Pythonとかで扱うケースは結構みますけど、
ある程度突っ込んだことをするケースとかでは何やかんやでC言語はアテになります。

実際のところ

導入

$ cd #YOURDIR
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi

で、ビルド

$ ./build

つかいかた

27番ピン(DI)から値を読んで出力するサンプルはIonoPiを参考に実装するとこんな感じ

#include <wiringPi.h>
#include <stdio.h>

#define BUFSIZ 12

void printDigitalValue(int di, int val) {
	char buf[BUFSIZ]; //バッファを設定

	setbuf(stdout, buf); //標準出力のバッファを溜め込む。無効にしたいなら二番目をNULL

	if (val == HIGH) {
		printf("high\n");
	} else {
		printf("low\n");
	}

	fflush(stdout); //この時点で吐き出す
}


int main() {
        //初期化
	if (wiringPiSetup() != 0) {
		return -1;
	}

        // DI1の初期化。PUD_OFFは"no pull up/down"の意味。
	pinMode(DI1, INPUT);
	pullUpDnControl(DI1, 0);

         //値を読む
         printDigitalValue(DI1, digitalRead(DI1));

	return 0;
}

参考もと

wiringpi.com
wiringpi.com