日韩欧美国产亚洲一区-国产一区二区欧美在线观看-国产日韩欧美高清视频在线-国产亚洲精品aaa在线播放-国产视频在线免费观看-国产欧美日韩综合在线视频-国产高清不卡视频在线播放-91最新视频在线观看-欧美日韩国产在线观看一区二区三区-国产欧美一区二区-亚洲国产综合第一页-超碰动漫-高清中文字幕-精品网站999www-欧美日韩国产在线资源-97资源免费视频总站-国产视频一区二区三区在线观看-久久久久成人网-超爱碰在线资源-99中文字幕一区二区-亚洲国产精品成人午夜在线观看-日韩欧美在线观看一区-91日韩欧美在线-国产v亚洲v日韩v欧美v天堂v-亚洲 免费 高清-国产成人91久久精品-五月天婷婷国产精品-国产99视频在线观看-97午夜视频-五月婷婷激情

【STM32F103】按鍵檢測(GPIO輸入)

按鍵硬件電路:

 

【STM32F103】按鍵檢測(GPIO輸入)

分析電路:按鍵K1按下,接通高電平3.3V,為了保護GPIO,加了限流電阻(R7),沒按下的時候是接地的,上升沿輸入。

 

PA0具有自動喚醒的功能(必須上升沿才能喚醒),電容C6用以硬件消抖(電容不斷充放電),這樣軟件就不用延時來消抖,

 

K2電路同。

 

GPIO輸入:GPIO數據輸入寄存器IDR,只要讀取這個寄存器就可以。

 

bsp_key.c 按鍵初始化:

 

#include “bsp_key.h”

 

 

void KEY_GPIO_Config(void)

{

GPIO_InitTypeDef? GPIO_InitStruct;

RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK, ENABLE);

RCC_APB2PeriphClockCmd(KEY2_GPIO_CLK, ENABLE);

GPIO_InitStruct.GPIO_Pin = KEY1_GPIO_PIN;

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStruct);

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStruct);

}

 

uint8_t Key_Scan(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin)

{

if( GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == KEY_ON )

{

// ?éê??ì2a

while( GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == KEY_ON );

return KEY_ON;

}

else return KEY_OFF;

}

 

bsp_key.h

 

#ifndef __BSP_KEY_H

#define __BSP_KEY_H

 

#include “stm32f10x.h”

 

#define? KEY_ON? ? ? 1

#define? KEY_OFF? ? ?0

 

#define KEY1_GPIO_PIN? ? ? ? ? ? ? GPIO_Pin_0

#define KEY1_GPIO_PORT? ? ? ? ? ? ?GPIOA

#define KEY1_GPIO_CLK? ? ? ? ? ? ? RCC_APB2Periph_GPIOA

 

#define KEY2_GPIO_PIN? ? ? ? ? ? ? GPIO_Pin_13

#define KEY2_GPIO_PORT? ? ? ? ? ? ?GPIOC

#define KEY2_GPIO_CLK? ? ? ? ? ? ? RCC_APB2Periph_GPIOC

 

void KEY_GPIO_Config(void);

uint8_t Key_Scan(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin);

 

#endif /* __BSP_KEY_H */

 

main.c

 

#include “stm32f10x.h”? ?//

#include “bsp_led.h”

#include “bsp_key.h”

 

void Delay( uint32_t count )

{

for(; count!=0; count–);

}

 

int main(void)

{

LED_GPIO_Config();

KEY_GPIO_Config();

while(1)

{

if( Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN) ==KEY_ON )

LED_G(1)

if( Key_Scan(KEY2_GPIO_PORT,KEY2_GPIO_PIN) ==KEY_ON )

LED_G(0)

// if

}

}

 

 

led_bsp.c與led_bsp.h參考上一篇使用庫函數點亮LED。

 

以此我們能夠通過這個程序檢測按鈕是否按下,并將值輸入到對應PORT,保存在GPIO數據輸入寄存器IDR中。

暫無評論,快來搶沙發吧!

發表評論

您的電子郵箱地址不會被公開。 必填項已用 * 標記

主站蜘蛛池模板: www.亚洲激情.com | 亚洲区另类春色综合小说 | 中文字幕一区二区三区四区在线视频 | 国内99视频 | 少妇精69xxtheporn | 国产麻豆精品久久一二三 | 日韩xxxxxxxxx | 欧美视频一区二 | 亚洲综合色视频 | 欧美精品久久久久久久久久白贞 | 日韩资源在线观看 | 国产精品理论片在线播放 | 久久久精品一区二区三区 | 亚洲精品视频二区 | 丁香六月婷婷激情 | 91少妇精拍在线播放 | 色窝资源 | www.色综合.com| 超碰97网站| 色五月情| 成人久久久精品国产乱码一区二区 | 在线播放一区二区三区 | 久久国产露脸精品国产 | 亚洲欧美视频在线 | 成人综合婷婷国产精品久久免费 | 91视频 - x99av| 国产69久久精品成人看 | 日韩精品亚洲专区在线观看 | 超碰在线人人艹 | 久久er99热精品一区二区 | 91视视频在线直接观看在线看网页在线看 | 亚洲色图22p | 一区二区视频欧美 | av中文在线影视 | 正在播放 国产精品 | 免费高清在线一区 | 五月激情天 | 久草av在线播放 | 在线韩国电影免费观影完整版 | 伊人午夜视频 | 久久精品视频3 | 精品久久综合 | 美女在线国产 | 亚洲最大免费成人网 | 97在线超碰| 久久久久久高清 | 美女很黄免费网站 | 国产一区二区三区在线 | 狠狠色丁香婷婷综合久小说久 | 精品久久久久久久久久久久久久久久久久 | 国产成人精品一区一区一区 | 欧美激情视频一区二区三区免费 | 香蕉成人在线视频 | 人人爱在线视频 | 午夜精品视频在线 | av手机在线播放 | 黄色大片免费播放 | 日韩三级视频在线看 | 欧美日韩国产免费视频 | 一区 在线 影院 | 日韩激情一二三区 | 国产欧美久久久精品影院 | 区一区二区三在线观看 | 综合网色| 91亚色免费视频 | 黄色av影视 | 正在播放国产一区 | 国产精品久久久久高潮 | 亚洲第一色 | 国产精品九九视频 | 欧美xxxxx在线视频 | 国产亚洲精品电影 | 五月婷在线 | 久久字幕网 | 在线色亚洲 | 日韩视频免费在线观看 | 欧美成人精品在线 | 久久精品久久综合 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 色小说在线 | 久久久久综合精品福利啪啪 | 欧美日韩免费一区 | 精品亚洲一区二区 | 波多野结衣日韩 | 国产区高清在线 | 国产夫妻性生活自拍 |