按鍵輸入使用gpio的讀取資料功能,用到的庫函式是gpio_readinputdatabit(),使用的暫存器是gpiox_idr。
使用的板子的按鍵原理圖如下:
從原理圖可看出wk_up是高電平有效、key0、key1、key2是低電平有效。
結合stm32原理圖看這四個按鍵分別接到了哪些引腳上
上面兩個圖我們可以看出key2、key1、key0接到了pe2、pe3、pe4上,wk_up接到了pa0上。
按鍵**如下
key.h
#ifndef __key_h
#define __key_h
#define key0_pres 1 //key0按下
#define key1_pres 2 //key1按下
#define key2_pres 3 //key2按下
#define wkup_pres 4 //key_up按下(即wk_up/key_up)
void key_init(void);//io初始化
u8 key_scan(u8); //按鍵掃瞄函式
#endif
key.c
#include "stm32f10x.h"
#include "key.h"
//按鍵初始化函式
void key_init(void) //io初始化
//按鍵處理函式
//返回按鍵值
//mode:0,不支援連續按;1,支援連續按;
//0,沒有任何按鍵按下
//1,key0按下
//2,key1按下
//3,key2按下
//4,key3按下 wk_up
//注意此函式有響應優先順序,key0>key1>key2>key3!!
u8 key_scan(u8 mode)
else
if(key0==1&&key1==1&&key2==1&&wk_up==0)key_up=1;
return
0;// 無按鍵按下
}
微控制器學習(一) 微控制器基礎 STM32
io四種輸入工作模式 io四種輸出工作模 stm32有8個16位定時器 stm32具有強大的異常響應系統,它把能夠打斷當前 執行流程的事件分為異常 exception 和中斷 interrupt 並把它們用乙個表管理起來,編號為 3 6的中斷向量定義為系統異常,編號從7到19的為外部中斷。中斷向量控...
學習筆記之 STM32微控制器
6 mco 2 0 可以提供4源不同的時鐘同步訊號,pa8 7 gpio口貌似有兩個反向串聯的二極體用作鉗位二極體。8 匯流排矩陣採用輪換演算法對系統匯流排和dma進行仲裁 9 icode匯流排,dcode匯流排 系統匯流排 dma匯流排 匯流排矩陣 ahb apb橋 10 在使用乙個外設之前,必須...
STM32微控制器PWM輸出學習
pwm原理 pwm表示脈衝寬度調製,它是一系列脈衝,這些脈衝將以方波的形式出現。也就是說,在任何給定的時間點,波型要麼是高電平或者是低電平。對於pwm訊號我們需要關注兩個與之相關的重要引數,乙個是pwm占空比,另乙個是pwm訊號的頻率。占空比 接通時間 接通時間 斷開時間 也就是說,通過控制從0 到...