女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

STM32F407入門開發: GPIO口輸入配置

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2022-05-28 13:52 ? 次閱讀

第一章F407建工程所需依賴文件

image.pngimage.pngimage.pngimage.pngimage.pngimage.png

第二章 新建工程

image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png

第三章分析 KEY 按鍵硬件原理圖

image.pngimage.pngimage.png

第四章 編寫 KEY 按鍵驅動代碼

查看數據手冊:

image.pngimage.png

key.c文件代碼如下:


#include "key.h"
/*
函數功能:按鍵初始化配置
硬件連接:
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;    //配置下拉
}


/*
函數功能:掃描按鍵
函數參數:掃描的模式。1表示連續檢測、0只能檢測單個按鍵
返 回 值:按下的按鍵值1、2、3、4
	  返回0表示按鍵沒有按下
*/
u8 ScanKeyVal(u8 mode)
{
	static u8 stat=0; //保存按鍵按下的狀態
	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<<4))
#define KEY1  (!!(GPIOE->IDR&1<<3))
#define KEY2  (!!(GPIOE->IDR&1<<2))
#define KEY_UP (!!(GPIOA->IDR&1<<0))
#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);
		 }
	}
}
復制代碼

第五章 編譯代碼 配置下載

image.pngimage.pngimage.png

審核編輯:湯梓紅

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

    關注

    16

    文章

    1273

    瀏覽量

    53584
  • 配置
    +關注

    關注

    1

    文章

    191

    瀏覽量

    18799
  • STM32F407
    +關注

    關注

    15

    文章

    188

    瀏覽量

    30253
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    STM32F407 GPIO輸入配置配置步驟

    介紹STM32F407新建寄存器工程流程,介紹輸入模式的配置方式,以按鍵為例完成按鍵輸入檢測。
    的頭像 發表于 07-06 14:28 ?3217次閱讀
    <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配置步驟,完成串口的數據發送與接收、實現中斷接收,支持printf重定向。
    的頭像 發表于 07-06 14:29 ?4348次閱讀
    <b class='flag-5'>STM32F407</b> 串口<b class='flag-5'>配置</b>步驟

    STM32F407 位帶配置步驟

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

    stm32f407通信的代碼

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

    STM32F407 UCOS III實驗

    STM32F407 UCOS III實驗,介紹基于STM32F407的UCOSIII實例,參考下
    發表于 09-22 14:08 ?82次下載

    STM32F407 開發板原理圖

    STM32F407 開發板原理圖
    發表于 09-22 16:12 ?393次下載
    <b class='flag-5'>STM32F407</b> <b class='flag-5'>開發</b>板原理圖

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

    [STM32]STM32F407系列教程之二,gpio輸入輸出實驗
    發表于 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
    發表于 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開發板用戶手冊】第1章?? 初學STM32F407的準備工作

    STM32F407開發板用戶手冊】第1章?? 初學STM32F407的準備工作
    發表于 12-04 13:36 ?78次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發</b>板用戶手冊】第1章?? 初學<b class='flag-5'>STM32F407</b>的準備工作

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

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

    STM32F407開發板用戶手冊】第8章 STM32F407的終極調試組件Event Recorder

    STM32F407開發板用戶手冊】第8章 STM32F407的終極調試組件Event Recorder
    發表于 12-04 14:21 ?19次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發</b>板用戶手冊】第8章 <b class='flag-5'>STM32F407</b>的終極調試組件Event Recorder

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

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

    STM32F407入門開發: 位帶操作

    STM32F407的位帶操作可以實現類似51單片機中寄存器的操作方法,操作GPIO代碼簡潔方便。 關于位段的操作在Cortex-M3M4權威指南里有詳細描述:
    的頭像 發表于 05-28 13:50 ?4067次閱讀
    <b class='flag-5'>STM32F407</b><b class='flag-5'>入門開發</b>: 位帶操作

    STM32F407入門開發: 串口配置

    STM32F407 的串口資源非常豐富,功能也很強勁。 STM32F407 最多可提供 6 路串口,有分數波特率發生器、支持同步單線通信和半雙工單線通訊、支持 LIN、 支持調制解調器操作、 智能卡
    的頭像 發表于 05-28 13:51 ?1.1w次閱讀
    <b class='flag-5'>STM32F407</b><b class='flag-5'>入門開發</b>: 串口<b class='flag-5'>配置</b>

    STM32F407入門開發: GPIO輸出配置

    第一章 F407建工程所需依賴文件
    的頭像 發表于 05-28 13:54 ?4885次閱讀
    <b class='flag-5'>STM32F407</b><b class='flag-5'>入門開發</b>: <b class='flag-5'>GPIO</b><b class='flag-5'>口</b>輸出<b class='flag-5'>配置</b>