娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年05月22日(星期四)

2019年05月22日 | STM32F103(庫函數)——按鍵檢測

發布者:撿漏來了 來源: eefocus關鍵字:STM32F103  庫函數  按鍵檢測 手機看文章 掃描二維碼
隨時隨地手機看文章

在我的STM32F103ZET6核心板上有四個按鍵,其中一個是復位按鍵,其余三個原理圖如下圖所示。


其中KEY0和KEY1分別接在PE3和PE4上,然后低有效。WK_UP接在PA0上,高電平有效。而且根據原理圖,在外部電路中是沒有上下拉電阻的,所以我們需要在STM32中設置上下拉電阻。


一樣,因為設置按鍵也是配置IO口工作方式。


main.c


/*******************************************************************************

* 文件名:main.c

* 描  述:

        1.按下KEY0,LED0狀態切換

        2.按下KEY1,LED1狀態切換

        3.按下WK_UP,LED0和LED1狀態切換

* 作  者:小默haa

* 版本號:v1.0

* 日  期: 2019年1月28日

* 備  注:獨立按鍵控制LED點亮

*         

*******************************************************************************/

#include "stm32f10x.h"

#include "led.h"

#include "key.h"

#include "delay.h"

#include "sys.h"

 

int main(void)

{

static u8 flag = 0;

LED_Init();

KEY_Init();

delay_init();

while(1)

{

flag = KEY_Scan(0);

switch(flag)

{

case 1:LED0 = !LED0; break;

case 2:LED1 = !LED1; break;

case 3:LED0 = !LED0; LED1 = !LED1; break;

default:break;

}

}

}

LED.c


#include "led.h"

 

/*******************************************************************************

* 函數名 :LED_Init

* 輸入值 :無

* 返回值 :無

* 作者 :小默haa

* 時間 :2019年1月26日

* 功能描述:LED初始化

* 備注 :        

*******************************************************************************/

void LED_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);//設能PB和PE口

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0->PB5 端口配置

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出

GPIO_Init(GPIOB, &GPIO_InitStructure); //根據參數設定參數配置GPIO

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1->PE5 端口配置

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出

GPIO_Init(GPIOE, &GPIO_InitStructure); //根據參數設定參數配置GPIO

}

LED.h


#ifndef __LED_H__

#define __LED_H__

 

#include "sys.h"

 

#define LED0 PBout(5)

#define LED1 PEout(5)

 

void LED_Init(void);

 

 

#endif

key.c


#include "key.h"

 

/*******************************************************************************

* 函數名 :KEY_Init

* 輸入值 :無

* 返回值 :無

* 作者 :小默haa

* 時間 :2019年1月28日

* 功能描述:按鍵初始化

* 備注 :        

*******************************************************************************/

void KEY_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOE, ENABLE);//設能PA和PE口

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4; //GPIOE3,GPIOE4

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //設置為上拉輸入模式

GPIO_Init(GPIOE, &GPIO_InitStructure); //根據參數設定參數配置GPIOE

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //GPIOA0

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //設置為下拉輸入模式

GPIO_Init(GPIOA, &GPIO_InitStructure); //根據參數設定參數配置GPIOA

}

 

/*******************************************************************************

* 函數名 :KEY_Scan

* 輸入值 :u8 mode

* 返回值 :按鍵值

* 作者 :小默haa

* 時間 :2019年1月28日

* 功能描述:按鍵掃描

* 備注 :mode = 0 -> 不支持按鍵長按

mode = 1 -> 支持按鍵長按

*******************************************************************************/

int KEY_Scan(u8 mode)

{

static u8 key_up = 1; //按鍵彈起標志

if(mode)

key_up = 1; //支持按鍵長按核心代碼

if(key_up && (!KEY0 || !KEY1 || WK_UP)) //檢測到按鍵按下

{

delay_ms(10); //延時10ms消抖

key_up = 0;

if(!KEY0)

return KEY0_PRESS;

else if(!KEY1)

return KEY1_PRESS;

else if(WK_UP)

return WK_UP_PRESS;

}

else if(KEY0 && KEY1 && !WK_UP)

key_up = 1;

return 0;

}

 

 

 

 

 

 

 

key.h


#ifndef __KEY_H__

#define __KEY_H__

 

#include "sys.h"

#include "delay.h"

 

#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)

#define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)

#define WK_UP GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)

 

#define KEY0_PRESS 1 //KEY0按下

#define KEY1_PRESS 2 //KEY1按下

#define WK_UP_PRESS 3 //WK_UP按下

 

void KEY_Init(void);

int  KEY_Scan(u8 mode);

 

#endif

關鍵字:STM32F103  庫函數  按鍵檢測 引用地址:STM32F103(庫函數)——按鍵檢測

上一篇:stm32端口“重映射” &&串口學習
下一篇:STM32F103(庫函數)——點亮LED并且使用軟件延時實現led閃爍

推薦閱讀

  中芯國際花了1.2億美元從荷蘭ASML(阿斯麥)買來一臺EUV極紫外光刻機,未來可用于生產7nm工藝芯片,長江存儲也迎來了自己的第一臺光刻機,同樣來自ASML,不過是193nm沉浸式,用于產20-14nm工藝的3D NAND閃存晶圓,7200萬美元一臺。下面就隨嵌入式小編一起來了解一下相關內容吧?! ⒕W報道, 5月21日上午,在上海浦東新區康橋工業園南區,華虹集...
【例7-3】 設時鐘頻率Fosc=18.432MHz,設計程序,從P1.0/CLKOUT2引腳輸出頻率為124.540KHz的時鐘;從T0(P3.4)引腳輸出頻率為125KHz的時鐘;從T1(P3.5)引腳輸出頻率為38.4KHz的時鐘。解:使用STC12C5A60S2的可編程時鐘輸出功能完成所需要求。在下面的程序設計中(在此只給出C語言程序),T0、T1和獨立波特率發生器BRT均工作在1T模式。程序編制如下:#i...
為了輔助Xilinx熱門產品20nm Kintex UltraScale KU060 FPGA,Teledyne-e2v現在可提供高度優化的多通道模數轉換器(ADC)和數模轉換器(DAC)解決方案。它們有各種不同等級類別可供選擇,最高級別是高可靠性耐輻射的宇航級,適用于衛星通信、地球觀測、導航和科學任務。 每個新的數據轉換器都可以通過其集成的ESIstream高速串行接口協議和與其相對應的F...
雖然“摩爾定律接近尾聲”的聲音不絕于耳,但IC業界對于更先進工藝制程的研究突破卻持續在為其“續命”。繼IBM宣稱試產2nm芯片還沒“上頭條”太久,臺積電便聯合臺大、麻省理工宣布研發出一種新型半導體材料——半金屬鉍,在1nm以下制程獲得重大突破。IBM的2nm與臺積電的1nm有何不同?未來的摩爾定律還將“維系”多久?殊途同歸?半個世紀以來,摩爾定律作...

史海拾趣

問答坊 | AI 解惑

USB接口中文資料

USB接口中文資料…

查看全部問答∨

MCD2/ICD2菜鳥超級入門篇

本帖最后由 paulhyde 于 2014-9-15 09:37 編輯  …

查看全部問答∨

分頻程序老編譯不過去,,如何整????

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fenpin is port(clk:in std_logic;--輸入時鐘 cmd:in std_logic_vector(7 downto 0);--分頻指令cmd clkout:out std_logic);--輸出時鐘 end fenpin; ...…

查看全部問答∨

STM32芯片的看門狗與休眠的沖突

各位大蝦:      最近要做一個手持設備,需要使用stm32F103的STOP模式,但同時我又開了獨立看門狗,每當我一進入STOP模式看門狗馬上就給我復位了,我怎樣才能在進入STOP模式的時候讓看門狗不起作用啊?…

查看全部問答∨

外企招聘工程師

某大型美資企業,誠聘英才:待遇在行業內屬領先水平,人性化管理,彈性工作制,能 接觸到世界尖端技術;一年多次出國培訓、旅游機會,可以解決深圳戶口。招聘職位如下, 有意向加入者請將簡歷發送至:sunny.yang@51job.com,我們會盡快與您聯系。1. ...…

查看全部問答∨

C語言的視頻那位仁兄在網上看到有

單片機的C語言的卻是個好東西,自學有點難,偶爾在網上看到有個視頻講座.很好.可惜.當時沒有把網給記下來.現在找,可就是找不到了.那位仁兄如果知道有這方面的視頻講座,請告訴我約.在下謝謝你了!…

查看全部問答∨

調試st的用uart的IAP出問題

是不是  直接把程序通過jlink下載到班子上,然后再調試。怎么我下完后,屏幕白屏。   我還是搞不懂,到底是怎么個演示順序。         希望大家弄過的幫幫忙!…

查看全部問答∨

在TI或者RFSTORM電池板BB運行上Light_switch程序

以前的帖子,重新整理到這個版面。   在TI或者RFSTORM電池板BB運行上TI CC2530CC2530-Software Examples中light_switch程序的方法。ZBDC51BB(SMARTRF05BB)板和ZBDC51MB(SMARTRF05EB)最主要的區別就是有沒有LCD顯示。TI的Light_Switch默 ...…

查看全部問答∨

低價出售相關芯片

本帖最后由 paulhyde 于 2014-9-15 09:11 編輯 低價出售相關MAXIN,LINEAR,TI相關運放芯片,另外還有一些濾波器芯片,具體有需要請聯系 QQ 240341406  …

查看全部問答∨

mov a,#83h

8051系統中 mov a,#83h mov ip ,a 問:執行以上程序后,中斷優先級高的是————————;中斷優先級低的是————————————————;…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 迁西县| 阳山县| 青河县| 霍邱县| 游戏| 平和县| 蒙自县| 博罗县| 河北区| 溆浦县| 青海省| 双辽市| 景德镇市| 札达县| 山阴县| 绥棱县| 浏阳市| 兴仁县| 阿克| 鄂托克前旗| 宁乡县| 社旗县| 天门市| 潮安县| 昌乐县| 贺州市| 蒲城县| 石家庄市| 盖州市| 扎鲁特旗| 土默特右旗| 建昌县| 清涧县| 潼南县| 始兴县| 新蔡县| 珲春市| 怀仁县| 宁陕县| 固始县| 曲周县|