精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

以按鍵驅動為例來實現輸入模式配置方法

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-05-31 11:13 ? 次閱讀

??1.STM32中GPIO口模式

每個GPI/O端口有兩個32位配置寄存器(GPIOx_CRL, GPIOx_CRH),兩個32位數據寄存器(GPIOx_IDR和GPIOx_ODR),一個32位置位/復位寄存器(GPIOx_BSRR),一個16位復位寄存器(GPIOx_BRR)和一個32位鎖定寄存器(GPIOx_LCKR)。根據數據手冊中列出的每個I/O端口的特定硬件特征, GPIO端口的每個位可以由軟件分別配置成多種模式。

─ 輸入浮空
─ 輸入上拉
─ 輸入下拉
模擬輸入
─ 開漏輸出
─ 推挽式輸出
─ 推挽式復用功能
─ 開漏復用功能

每個I/O端口位可以自由編程,然而I/0端口寄存器必須按32位字被訪問 (不允許半字或字節訪問 )。 GPIOx_BSRR和 GPIOx_BRR寄存器允許對任何GPIO寄存器的讀/更改的獨立訪問;這樣,在讀和更改訪問之間產生IRQ時不會發生危險。

本示例主要講解IO口輸入模式的應用,以按鍵驅動為例來實現輸入模式配置方法。本次實驗所用開發板有3個按鍵,其中一個為復位按鍵,另外兩個則可用戶自行驅動。我們采用板載的2個按鍵來實現對LED開關控制

2.硬件接口

??SW2為復位按鍵,已直接接到芯片復位引腳上,SW3接在PB0上、SW4接在PB1上。按鍵按下均為低電平。

在這里插入圖片描述

3.軟件設計

1.打開STM32CubmMX代碼生成軟件,將PB0、PB1配置為輸入模式。
2.在選定為輸入模式后,STM32輸入模式分為兩種:浮空輸入、上拉/下拉輸入。
浮空輸入:配置為浮空輸入模式,初始化成功后引腳電平狀態處于中間態,既不為高也不為低。
上拉/下拉輸入:配置為浮空輸入模式,初始化成功后引腳電平狀態可以選擇是高電平或者低電平。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center

? 因為按鍵按下為低電平,因此要想檢測到按鍵狀態變化,初始化時就得設置為與按下相反的電平,所用我們這里選擇帶上拉的輸入模式(選擇浮空輸入也可,一般建議使用上拉輸入模式)。

4.生成配置代碼

??使用STM32Cubemx生成代碼時,所有的GPIO初始化均會放gpio.c中。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center
  1. 在當前工程的Core目錄下新建SYSTEM文件夾保存用戶自定義驅動文件。
在這里插入圖片描述

2.創建一個key.c和key.h文件,在SYSTEM目錄中創建一個KEY文件夾保存該文件

在這里插入圖片描述

3.添加頭文件路徑,編寫key.h文件

在這里插入圖片描述watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center

4.編寫key.c文件,編寫按鍵檢測函數

u8 KEY_GetVal(void)
{
	u8 static stat=0;
	if((!KEY1 || !KEY2) && !stat)
	{
		stat=1;
		HAL_Delay(30);
		if(!KEY1)return 1;
		else if(!KEY2)return 2;
		else return 0;
	}
	else
	{
		if(KEY1 && KEY2)stat=0;
	}
	return 0;
}

5.實現按鍵控制LED開關

在這里插入圖片描述

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2266

    文章

    10873

    瀏覽量

    354864
  • GPIO
    +關注

    關注

    16

    文章

    1196

    瀏覽量

    51920
  • 按鍵驅動
    +關注

    關注

    0

    文章

    11

    瀏覽量

    7126
收藏 人收藏

    評論

    相關推薦

    DshanMCU-R128s2 ADC按鍵配置方法

    FreeRTOS平臺上使用的按鍵ADC-KEY,采用的ADC模塊GPADC。 按鍵功能驅動實現
    的頭像 發表于 12-22 19:11 ?2256次閱讀
    DshanMCU-R128s2 ADC<b class='flag-5'>按鍵</b><b class='flag-5'>配置</b><b class='flag-5'>方法</b>

    Linux下如何使用中斷的方式驅動按鍵

    Linux下的按鍵輸入驅動開發模板一文中介紹了基本的按鍵輸入捕獲流程,這里將進一步介紹如何使用中斷的方式
    發表于 07-29 08:59 ?962次閱讀

    STM32F407 GPIO口輸入配置配置步驟

    介紹STM32F407新建寄存器工程流程,介紹輸入模式配置方式,按鍵
    的頭像 發表于 07-06 14:28 ?2104次閱讀
    STM32F407 GPIO口<b class='flag-5'>輸入</b><b class='flag-5'>配置</b><b class='flag-5'>配置</b>步驟

    高級定時器PWM輸入模式配置方法

    我們將向大家介紹高級定時器的另一個常見應用——PWM輸入模式。在本節課中,我們將先圍繞輸入捕獲模式展開,并重點描述PWM輸入
    的頭像 發表于 11-08 16:48 ?1590次閱讀
    高級定時器PWM<b class='flag-5'>輸入</b><b class='flag-5'>模式</b>的<b class='flag-5'>配置</b><b class='flag-5'>方法</b>

    L298N介紹電機驅動模塊的使用方法

    電機驅動模塊在電子制作中會經常使用到,下面L298N型號的模塊介紹其使用方法。 模塊引腳說明如下:值得注意的是,它已經內置5V供電,所
    發表于 12-30 07:47

    學習配置按鍵模塊

    ,PA0分別檢測B1-B4按鍵的狀態2.Cubemx實現IO的配置注:RCC的配置是不可少的哦,不記得的可以參看上一節此處也初始化了LED作為測試顯示。IO
    發表于 01-11 08:03

    怎樣通過按鍵處理led演示IO輸入模式配置

    怎樣通過按鍵處理led演示IO輸入模式配置呢?有哪些配置步驟?
    發表于 01-27 06:08

    單片機的按鍵配置輸入模式獲取控制信號

    關于STM32學習分享第二章 按鍵輸入控制文章目錄前言二、代碼1.key.c2.key.h3.main.c總結前言開始!開始!單片機的按鍵配置
    發表于 02-24 06:06

    SPI驅動展示如何使用ENV工具對BSP進行配置

    、SDIO、ADC 等,但是 BSP 工程默認沒有開啟這些外設驅動。RT-Thread 提供了 ENV 工具開啟或關閉 BSP 的外設驅動。本文 RA6M4-CPK 開發板上開啟
    發表于 07-15 10:55

    全志R128外設模塊配置——ADC按鍵配置方法

    ADC 按鍵配置方法 FreeRTOS平臺上使用的按鍵ADC-KEY,采用的ADC模塊GPA
    發表于 10-20 11:04

    3、GIPO輸入按鍵配置

    本節通過按鍵處理led演示IO輸入模式配置1、根據原理圖按鍵找到對應的引腳2、打開cubem
    發表于 12-03 09:06 ?9次下載
    3、GIPO<b class='flag-5'>輸入</b>(<b class='flag-5'>按鍵</b><b class='flag-5'>配置</b>)

    STM32筆記之按鍵KEY輸入

    關于STM32學習分享第二章 按鍵輸入控制文章目錄前言二、代碼1.key.c2.key.h3.main.c總結前言開始!開始!單片機的按鍵配置
    發表于 12-31 19:49 ?7次下載
    STM32筆記之<b class='flag-5'>按鍵</b>KEY<b class='flag-5'>輸入</b>

    AMetal適配:TIM展示如何開發通用驅動外設代碼

    基于定時器、RTC、WDT本質上均是計數器的共性,本次將這三種通用外設統一TIM。TIM展示如何開發通用
    的頭像 發表于 05-12 17:08 ?1812次閱讀
    AMetal適配:<b class='flag-5'>以</b>TIM<b class='flag-5'>為</b><b class='flag-5'>例</b><b class='flag-5'>來</b>展示如何開發通用<b class='flag-5'>驅動</b>外設代碼

    按鍵驅動的實驗

    按鍵驅動實驗與LED以及Beep在整體使用邏輯上一樣,只是按鍵輸入模式
    的頭像 發表于 03-02 16:25 ?723次閱讀
    <b class='flag-5'>按鍵</b><b class='flag-5'>驅動</b>的實驗

    STM32單片機的GPIO輸入、輸出模式配置方法

    STM32 單片機是一款高性能、低功耗的 32 位微控制器,具有強大的計算能力、靈活的外設模塊和實現微控制器應用所需的社區支持。在單片機應用中,GPIO 輸入輸出模式是必不可少的硬件接口之一。本文將介紹 STM32 單片機的 G
    發表于 08-15 18:23 ?8075次閱讀