rapspberry pi 3b+を用いてgpioへの入力を出力するプログラムを作ろうとしています。
しかし、プログラムで入力受付状態にしたにも関わらず、常に入力された状態になってしまうGPIOがあります。ピン番号は6です。
正しく入力受付させるためには、とうしたらよいでしょうか。
以下に、入力受付プログラムを示します。
define GPIO_SW_1 26
define GPIO_SW_2 19
define GPIO_SW_3 13
define GPIO_SW_4 6
define GPIO_SW_5 22
include<wiringPi.h>
include<stdio.h>
include<stdlib.h>
int ControlIO(int [5]);//入出力管理用関数controlIOのプロトタイプ宣言
//ここからメイン関数
int main(){
//wiringPiをGPIOモードで起動
if(wiringPiSetupGpio()==-1){
printf("error\n");
return -1;
}
//GPIO起動 pinMode(GPIO_SW_1,INPUT); pinMode(GPIO_SW_2,INPUT); pinMode(GPIO_SW_3,INPUT); pinMode(GPIO_SW_4,INPUT); pinMode(GPIO_SW_5,INPUT); while(1){ delay(500); int Buff[5]={0};//入力読み取り用(初期化済) //GPIO状態読み取り Buff[0]=digitalRead(GPIO_SW_1); Buff[1]=digitalRead(GPIO_SW_2); Buff[2]=digitalRead(GPIO_SW_3); Buff[3]=digitalRead(GPIO_SW_4); Buff[4]=digitalRead(GPIO_SW_5); //コントロール用関数を作ってmain内の表記を簡略化 ControlIO(Buff); } return 0;
}
//メイン終了
int ControlIO(int Buff[5]){
printf("%d,%d,%d,%d\n",Buff[0],Buff[1],Buff[2],Buff[3],Buff[4]);
}
回答2件
あなたの回答
tips
プレビュー