今天筆者在LED燈的基礎上寫了一個GPIO作為輸入端口的例子。實驗中筆者采用一個按鍵作為IO輸入設備,然后用bb_black去采集當前的信息。
第一步:硬件介紹
1、按鍵介紹
輕觸按鍵的結構如下圖所示,按鍵的1,2腳,3,4腳是分別連在一起的,當按下按鍵是也就是將1,3(或者2,4)引腳短接,松開時兩腳間開路。
2、硬件原理
注:
(1)為了防止誤操作時,3.3V將IO口燒掉筆者在按鍵與3.3V之間連接了一個限流電阻(10k);
(2)本實驗筆者使用了P8排座的14引腳,也就是GPIO_26引腳。
3、硬件連接
筆者使用的按鍵是從廢舊的板子上拆下來的,焊接了兩根線,兩根線的另一頭直接焊接了插針,焊接部位用熱縮管抱住,在做各種開發的時候使用起來非常的簡單實用。
第二步:軟件代碼
1、先看看第一部分的代碼
1 #include <stdio.h> 2 #define GPIO_DIR "/sys/class/gpio/" 3 4 int main() 5 { 6 FILE *stream=NULL; 7 char a[10]; 8 stream=fopen(GPIO_DIR"export","w"); 9 10 fwrite("26",sizeof(int),2,stream); 11 fclose(stream); 12 13 14 stream=fopen(GPIO_DIR"gpio26/direction","r+"); 15 fwrite("in",sizeof(char),2,stream); 16 fclose(stream); 17 while(1) 18 { 19 stream=fopen(GPIO_DIR"gpio26/value","r+"); 20 fscanf(stream,"%s",a); 21 printf("%s\n",a); 22 fclose(stream); 23 sleep(1); 24 } 25 26 return 0; 27 }
注:
(1)關於fopen,fwrite,fread,fclose的用法參照筆者的另外一篇筆記http://www.cnblogs.com/zhezhe1988/p/4264482.html;
2、實驗結果: