STM32F1笔记(二)GPIO输入
生活随笔
收集整理的這篇文章主要介紹了
STM32F1笔记(二)GPIO输入
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
STM32 GPIO輸入的經典應用是按鍵。
先看電路。聲明:參考正點原子戰艦開發板。
在這里可以看到,KEY_UP按鍵是高電平有效的,即當按下該按鍵時,GPIO讀到高電平。
KEY0/1/2是低電平有效的,即當按下該按鍵時,GPIO讀到低電平。
而且外部電路都沒有上下拉電阻。所以,需要在STM32內部配置上下拉。
上拉就是將不確定的信號通過一個電阻鉗位在高電平,電阻同時起限流作用。
下拉同理,也是將不確定的信號通過一個電阻鉗位在低電平。
?
配置程序如下:
void KEY_Init(void) //IO3?ê??ˉ { GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOE, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOE, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;GPIO_Init(GPIOA, &GPIO_InitStructure);}?
應用程序
#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4) #define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3) #define KEY2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2) #define WK_UP GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)按鍵的應用還需要注意消抖。
經典消抖示意圖:
按鍵消抖通常處理:當檢測到按鍵有效電平后,延時5~10ms,再次判斷電平是否有效。
?
模擬輸入經典應用場景為ADC,在后續筆記中進行講解。
?
浮空輸入比較特殊。當處于浮空輸入狀態下,IO的電平狀態是不確定的(0~VCC之間),完全由外部輸入決定。
通常用于低功耗下省電,即將不需要使用的GPIO全部配置為浮空輸入模式。
?
?
總結
以上是生活随笔為你收集整理的STM32F1笔记(二)GPIO输入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32F1笔记(一)GPIO输出
- 下一篇: STM32F1笔记(三)UART/USA