RaspberryPiのGPIOをC言語で制御するにあたりWiringPiライブラリの関数まとめ
※ 作者がわれわれ凡人にブチ切れwiringPiの更新をやめてしまった。
※ githubで非公式のミラーはあるが機能の追加等の更新はしないそうです。
※ 個人的にはラズパイではpythonを使うのがいいと思いますが
※ どうしてもCを使いたい場合はpigpioを使うのがいいのではないかと思います。
●Setup Functions
どれか一つはプログラムの最初に呼ばなければならない
初期化処理に失敗した場合、戻り値-1が返される
int wiringPiSetup(void) ---wiringPiピンナンバーを利用する
wiringPiSetupGpio(void) ---Broadcom GPIOのピン番号を直接利用
wiringPiSetupSys(void) ---/sys/class/gpioインターフェースを使い初期化
●General wiring functions
void pinMode(int pin,int mode) ---ピンのmode(INPUT、OUTPUT、PWM_OUTPUT)を設定
void digitalWrite(int pin,int value) ---ピンにHIGH(1)かLOW(0)を設定
void digitalWriteByte(int value) ---8つのGPIOに、8bitで設定した値を設定
void pwmWrite(int pin , int value) ---PWMレジスタに値を書き込む、0~1024
※PWMをサポートしているのはGPIO18のみ
int digitalRead(int pin) ---引数で与えられたpinの値を戻り値とし返す
void pullUpDnControl(int pin,int pud) ---引数のピンのプルアップ、プルダウンを設定
※該当のピンをINPUTに設定しておくこと
●PWM Control
Sys modeの時はPWMコントロールはできない
pwmSetMode(int mode) ---balanced,mark:spaceの選択デフォルトは前者
pwmSetRange(unsigned int range) ---PWMジェネレータ内の範囲レジスタを設定
pwmSetClock(int divisor) ---PWMクロックの除数を設定
●Timing functions
unsigned int millis(void) ---wiringPiSetup関数を呼んでからミリ秒を示す数値を返す
void delay(unsigned int howLong) ---howLong数値のm秒分、処理をポーズ
void delayMicroseconds(unsigned int howLong) ---howLong数値のμ秒分、処理をポーズ