之前學52的時候學過矩陣按鍵的程式,但是當我第一次拿到32板子寫程式的時候還是有一點懵,不過還來理理思路,感覺想一想還是可以寫出來的,我這次是沒有自己去焊矩陣按鍵,而是買了乙個薄膜按鍵,省去了焊接的麻煩//手動狗頭//
1、首先乙個大思路,我們用矩陣按鍵的時候,首先是先確定哪一行,接著是哪一列
(1)我讓行作輸出,並輸出低電平,列作輸入,並讀取電平,當有按鍵按下的時候就會有電平變化–>這個是用來判斷是哪一行
void
key_l_init
(void
)
(2)下面確定哪一列,因為我們剛剛確定了哪一行,只要確定哪一列,就可以找出按下的位置,這次思路是讓列輸出並輸出高電平,讓行作輸入並讀取電平變化
void
key_r_init
(void
)
(3)下面只需要作按鍵位置處理就可以了
char
keyscan
(void)}
if(pain(6
)==0)
}if(pain(5
)==0)
}if(pain(4
)==0)
}if(column==1)
if(pain(2
)==1)
if(pain(1
)==1)
if(pain(0
)==1)
}}if(column==2)
if(pain(2
)==1)
if(pain(1
)==1)
if(pain(0
)==1)
}}if(column==3)
if(pain(2
)==1)
if(pain(1
)==1)
if(pain(0
)==1)
}}if(column==4)
if(pain(2
)==1)
if(pain(1
)==1)
if(pain(0
)==1)
}}}return key_number;
}
stm32 工業按鍵檢測 STM32按鍵的檢測
stm32的按鍵檢測相對比較簡單,首先按部就班的初始化連線的到的i o,然後寫乙個按鍵掃瞄函式,這個和51微控制器的差不多。以下是乙個比較典型的例子 利用按鍵控制led key.件 ifndef key h define key h include sys.h definekey0 gpio rea...
STM32按鍵實驗
用systick做時間20ms的判斷,用狀態機概念的按鍵掃瞄三狀態去除抖動,狀態0 有按鍵按下,狀態1 有按鍵按下,判斷具體按鍵,狀態3 判斷按鍵抬起,沒20ms進行狀態的判斷。流程圖 systick程式 不包括初始化程式,初始化程式在delay.c中 systick load 20 fac ms ...
stm32按鍵輸入
對於上乙個實驗流水燈來說,這一次的實驗是獲取輸入的乙個小demo。在課堂上,看老師除錯的時候,只要有輸入則輸入暫存器idr的值就會改變,所以想要獲得輸入只需要迴圈去獲取idr的值即可。在stm32的庫中有乙個讀取輸入資訊的函式 uint8 t gpio readinputdatabit gpio t...