日韩欧美国产亚洲一区-国产一区二区欧美在线观看-国产日韩欧美高清视频在线-国产亚洲精品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中。

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

發表評論

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

主站蜘蛛池模板: 欧美日韩高清一区二区 | 国产精品久久久久久久久久久久午夜 | 久久av免费| 欧美美女视频在线观看 | 91精品一区二区三区蜜臀 | av一级片 | 国产又粗又猛又黄又爽的视频 | 99在线看 | 999视频在线播放 | 天天操狠狠操网站 | 9在线观看免费高清完整版在线观看明 | 久久福利小视频 | 亚洲精品在线看 | 日韩高清免费电影 | 成人国产网站 | www.久久久精品 | 日韩在线播放视频 | 亚洲精品中文在线资源 | 国产视频每日更新 | 亚洲精品免费在线视频 | 亚洲激情 在线 | 波多野结衣小视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久国产精品免费一区二区三区 | 最新免费av在线 | 欧美综合在线视频 | 欧美日在线观看 | 99久久精品午夜一区二区小说 | 国产一区二区在线看 | 在线免费观看黄网站 | 久久精品视频国产 | 92av视频| 欧美性色综合 | 成人夜晚看av | 丰满少妇麻豆av | 欧美一级日韩三级 | 国产成人精品一区二区在线 | 玖玖视频在线 | 四虎永久免费在线观看 | 免费在线观看a v | 四虎成人免费观看 | 97热久久免费频精品99 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产视频亚洲 | 欧美日韩成人一区 | 欧美日本中文字幕 | 国产精品日韩久久久久 | 欧美久久久久久久久久 | 久久久久久中文字幕 | 亚洲精品视频网站在线观看 | 波多野结衣视频一区 | 色婷婷亚洲婷婷 | 日韩中文字幕免费视频 | 久久99精品国产99久久6尤 | 国产精品久久久久久久久久久久午夜 | 视频在线一区 | 亚洲国产高清视频 | 欧美亚洲国产精品久久高清浪潮 | 国产黄色网 | 99色在线观看视频 | 国产69精品久久久久99尤 | 婷婷色中文 | 精品主播网红福利资源观看 | 一区二区三区福利 | 一区二区三区电影大全 | 欧美一级日韩免费不卡 | 成人av教育 | 久久艹精品 | 99久久婷婷国产精品综合 | 成年人视频在线免费播放 | 欧美久久久久 | av不卡免费在线观看 | 色婷婷激情综合 | 天天操天天操天天操天天操天天操天天操 | 成人精品久久久 | 国产精品高潮呻吟久久久久 | 99国产情侣在线播放 | 免费人成网 | 国产一区麻豆 | 一区 在线 影院 | www.亚洲黄 | 中文字幕在线观看免费观看 | 天天操福利视频 | 在线免费国产 | 国产一区福利在线 | 欧美成人性战久久 |