一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內不再提示

STM32F407 GPIO口輸入配置配置步驟

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2023-07-06 14:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

介紹STM32F407新建寄存器工程流程,介紹輸入模式的配置方式,以按鍵為例完成按鍵輸入檢測。

【1】F407建工程所需依賴文件

img

img

img

img

img

img

【2】新建工程

img

img

img

img

img

img

img

img

img

img

img

【3】分析KEY按鍵硬件原理圖

img

img

img

【4】編寫KEY按鍵驅動代碼

查看數(shù)據(jù)手冊:

img

img

key.c文件代碼如下:

#include "key.h"
 /*
 函數(shù)功能:按鍵初始化配置
 硬件連接:
 KEY0 --- >PE4  按下為低電平
 KEY1 --- >PE3  按下為低電平
 KEY2 --- >PE2  按下為低電平
 KEY_UP-- >PA0  按下為高電平
 */
 void KEY_Init(void)
 {
 /*1. 開時鐘*/
   RCC- >AHB1ENR|=1< 0;//使能PORTA時鐘
 RCC- >AHB1ENR|=1< 4;//使能PORTE時鐘
 
   /*2. 配置GPIO口模式*/
   GPIOE- >MODER&=~(0x3< 2*2); //清除模式
 GPIOE- >MODER|=0x0< 2*2;    //配置輸入模式
 
 GPIOE- >MODER&=~(0x3< 3*2); //清除模式
 GPIOE- >MODER|=0x0< 3*2;    //配置輸入模式
 
 GPIOE- >MODER&=~(0x3< 4*2); //清除模式
 GPIOE- >MODER|=0x0< 4*2;    //配置輸入模式
 
 GPIOA- >MODER&=~(0x3< 0*2); //清除模式
 GPIOA- >MODER|=0x0< 0*2;    //配置輸入模式
 
 /*3. 配置GPIO口上下拉模式*/
 GPIOE- >PUPDR&=~(0x3< 2*2); //清除之前配置
 GPIOE- >PUPDR|=0x1< 2*2;    //配置上拉
 
 GPIOE- >PUPDR&=~(0x3< 3*2); //清除之前配置
 GPIOE- >PUPDR|=0x1< 3*2;    //配置上拉
 
 GPIOE- >PUPDR&=~(0x3< 4*2); //清除之前配置
 GPIOE- >PUPDR|=0x1< 4*2;    //配置上拉
 
 GPIOA- >PUPDR&=~(0x3< 0*2); //清除之前配置
 GPIOA- >PUPDR|=0x2< 0*2;    //配置下拉
 }
 ?
 ?
 /*
 函數(shù)功能:掃描按鍵
 函數(shù)參數(shù):掃描的模式。1表示連續(xù)檢測、0只能檢測單個按鍵
 返 回 值:按下的按鍵值1、2、3、4
           返回0表示按鍵沒有按下
 */
 u8 ScanKeyVal(u8 mode)
 {
 static u8 stat=0; //保存按鍵按下的狀態(tài)
 if(mode)stat=0;   //手動清除按鍵按下標志
 if((KEY_UP||KEY0==0||KEY1==0||KEY2==0)&&stat==0)
 {
 stat=1;      //標記按鍵已經按下了
 DelayMs(20); //延時消抖
 if(KEY_UP) return 4;
 if(KEY0==0)return 1;
 if(KEY1==0)return 2;
 if(KEY2==0)return 3;
 }
 else
 {
   if(KEY_UP==0&&KEY0&&KEY1&&KEY2)stat=0; //清除按鍵按下標志
 }
 return 0;
 }
 ?

key.h代碼如下

#ifndef _KEY_H
 #define _KEY_H
 #include "stm32f4xx.h"
 #include "delay.h"
 void KEY_Init(void);
 u8 ScanKeyVal(u8 mode);
 #define KEY0  (!!(GPIOE- >IDR&1< 
 #define KEY1  (!!(GPIOE- >IDR&1< 
 #define KEY2  (!!(GPIOE- >IDR&1< 
 #define KEY_UP (!!(GPIOA- >IDR&1< 
 #endif
 ?

Main.c代碼如下

#include "stm32f4xx.h" // Device header
 #include "led.h"
 #include "delay.h"
 #include "key.h"
 ?
 int main(void)
 {
 u8 key,i;
 LED_Init();
 KEY_Init();
 while(1)
 {
  key=ScanKeyVal(0);
  if(key)
  {
   i=!i;
 LED0(i);
   LED1(i);
 BEEP(i);
  }
 }
 }
 ?

【5】編譯代碼 配置下載

img

img

審核編輯:湯梓紅

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

    關注

    146

    文章

    17985

    瀏覽量

    367350
  • 寄存器
    +關注

    關注

    31

    文章

    5435

    瀏覽量

    124607
  • 按鍵
    +關注

    關注

    4

    文章

    227

    瀏覽量

    58085
  • GPIO
    +關注

    關注

    16

    文章

    1280

    瀏覽量

    54143
  • STM32F407
    +關注

    關注

    15

    文章

    188

    瀏覽量

    30633
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32F407 GPIO輸出配置配置步驟

    STM32F407ZGT6 是意法半導體(STMicroelectronics)公司推出的一款高性能ARM Cortex-M4核心的32位微控制器(MCU)。它是 STM32F4 系列的一員,具備強大的處理能力和豐富的外設功能,適用于各種應用領域
    的頭像 發(fā)表于 07-06 14:27 ?2863次閱讀
    <b class='flag-5'>STM32F407</b> <b class='flag-5'>GPIO</b><b class='flag-5'>口</b>輸出<b class='flag-5'>配置</b><b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    STM32F407 串口配置步驟

    介紹STM32F407配置步驟,完成串口的數(shù)據(jù)發(fā)送與接收、實現(xiàn)中斷接收,支持printf重定向。
    的頭像 發(fā)表于 07-06 14:29 ?4694次閱讀
    <b class='flag-5'>STM32F407</b> 串口<b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    STM32F407 位帶配置步驟

    介紹STM32F407位帶操作方法,設置寄存器的偏移量,實現(xiàn)按GPIO指定位進行讀寫操作,方便編程。
    的頭像 發(fā)表于 07-06 14:30 ?1701次閱讀
    <b class='flag-5'>STM32F407</b> 位帶<b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    STM32F407 外部中斷配置步驟

    介紹STM32F407外部中斷配置步驟,以按鍵為例,實現(xiàn)外部中斷配置,使用按鍵觸發(fā)中斷進行LED燈控制。
    的頭像 發(fā)表于 07-06 14:31 ?2644次閱讀
    <b class='flag-5'>STM32F407</b> 外部中斷<b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    CC2530 GPIO輸入配置配置步驟

    介紹CC2530 GPIO輸入配置配置。
    的頭像 發(fā)表于 07-06 14:40 ?3744次閱讀
    CC2530 <b class='flag-5'>GPIO</b><b class='flag-5'>口</b><b class='flag-5'>輸入</b><b class='flag-5'>配置</b><b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    stm32f407輸出pwm波的配置步驟有哪些

    什么是脈沖寬度調制?stm32f407輸出pwm波的配置步驟有哪些?
    發(fā)表于 10-25 07:15

    STM32F407的DAM輸出配置有哪些步驟

    STM32F407的DAM輸出配置有哪些步驟呢?怎樣去實現(xiàn)其代碼呢?
    發(fā)表于 01-25 07:22

    stm32f407通信的代碼

    stm32f407通信的代碼 原理圖還有封裝 很清楚自己畫的
    發(fā)表于 03-21 17:22 ?0次下載

    STM32CubeMX 配置STM32F407 實現(xiàn)HAL庫延時微妙方案

    STM32CubeMX 配置STM32F407 實現(xiàn)HAL庫延時微妙方案
    發(fā)表于 11-24 20:51 ?20次下載
    <b class='flag-5'>STM32</b>CubeMX <b class='flag-5'>配置</b><b class='flag-5'>STM32F407</b> 實現(xiàn)HAL庫延時微妙方案

    [STM32]STM32F407系列教程之二,gpio輸入輸出實驗

    [STM32]STM32F407系列教程之二,gpio輸入輸出實驗
    發(fā)表于 11-29 14:06 ?19次下載
    [<b class='flag-5'>STM32</b>]<b class='flag-5'>STM32F407</b>系列教程之二,<b class='flag-5'>gpio</b><b class='flag-5'>輸入</b>輸出實驗

    STM32F407的串口UART 基礎配置STM32CubeMX

    STM32F407的串口UART 基礎配置STM32CubeMX
    發(fā)表于 11-29 16:06 ?56次下載
    <b class='flag-5'>STM32F407</b>的串口UART 基礎<b class='flag-5'>配置</b><b class='flag-5'>STM32</b>CubeMX

    stm32f407引腳相關配置

    stm32f407的IO可由軟件配置成8種模式:輸入浮空、輸入上拉、輸入下拉、模擬
    發(fā)表于 12-02 15:51 ?15次下載
    <b class='flag-5'>stm32f407</b>引腳相關<b class='flag-5'>配置</b>

    STM32F407開發(fā)板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)

    STM32F407開發(fā)板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)
    發(fā)表于 12-04 13:51 ?23次下載
    【<b class='flag-5'>STM32F407</b>開發(fā)板用戶手冊】第21章 <b class='flag-5'>STM32F407</b>的NVIC中斷分組和<b class='flag-5'>配置</b>(重要)

    STM32F407開發(fā)板用戶手冊】第19章 STM32F407GPIO應用之按鍵FIFO

    STM32F407開發(fā)板用戶手冊】第19章 STM32F407GPIO應用之按鍵FIFO
    發(fā)表于 12-05 15:21 ?39次下載
    【<b class='flag-5'>STM32F407</b>開發(fā)板用戶手冊】第19章 <b class='flag-5'>STM32F407</b>的<b class='flag-5'>GPIO</b>應用之按鍵FIFO

    STM32F407的USB_HID 基礎配置STM32CubeMX

    STM32F407的USB_HID 配置示例詳解: (參考 : https://blog.csdn.net/zhanglifu3601881/article/details/89675307)工具
    發(fā)表于 12-28 19:59 ?25次下載
    <b class='flag-5'>STM32F407</b>的USB_HID 基礎<b class='flag-5'>配置</b><b class='flag-5'>STM32</b>CubeMX