`

stm32笔记:按键输入(精简版)

阅读更多
//GPIOA8是   LED0
//GPIOA13是  KEY0            仅包含启动代码 STM32F10x.s

#define GPIOA_CRL    (*(volatile unsigned long *)(0x40000000+0x10000+0x0800+0x00))
#define GPIOA_CRH    (*(volatile unsigned long *)(0x40000000+0x10000+0x0800+0x04))
#define GPIOA_IDR    (*(volatile unsigned long *)(0x40000000+0x10000+0x0800+0x08))
#define GPIOA_ODR    (*(volatile unsigned long *)(0x40000000+0x10000+0x0800+0x0C))
#define RCC_APB2ENR  (*(volatile unsigned long *)(0x40000000+0x20000+0x1000+0x18))

void delay(unsigned long i)   //超级不精确的软延时
{
	int j;
	while(i--)
	{
		for(j=0;j<1500;j++)
		{}			
	}	
}
	
int main(void)
{	
	u8 keyflag=1;	//按键进入标志,防止一次按键多次判断的简易做法
	
	RCC_APB2ENR= 1<<2;		 //打开PA时钟,默认启用内部8M时钟
	GPIOA_CRH &= 0XFFFFFFF0; //准备配置PA8 ,PA8是LED0
	GPIOA_CRH |= 0X00000003; //PA8 推挽输出   	 
  	GPIOA_ODR |= 1<<8;       //PA8 输出高,即先关闭led

	GPIOA_CRH &= 0XFF0FFFFF;  //准备配置PA13	,PA13是KEY0  
	GPIOA_CRH |= 0X00800000;  //配置PA13为带上拉下拉输入
	
	
	while(1)
	{ 
		if(!checkBit(GPIOA_IDR,13))  //键被按下的话,执行led反转
		{
			if(keyflag)
			{
				keyflag=0;
				GPIOA_ODR = revBit(GPIOA_ODR,8); //第8位反转,revBit是宏
			}
		}
		else
		{
			keyflag=1;
		}
		
		delay(10); //简易消抖
	}	 
}


//checkBit 和revBit都是关于位的宏
//#define  BIT(n)            (1<<(n))
//#define  revBit(val,n)     ((val)^(BIT(n)))
//#define  checkBit(val,n)   (((val)&(BIT(n)))>>(n))

 

0
5
分享到:
评论

相关推荐

    stm32f1实验3 按键输入实验

    stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键...

    STM32的按键输入程序,亲测可用

    在STM32的开发过程中,按键输入是一个基本但至关重要的功能,它使得用户能够与系统进行交互。下面我们将详细探讨STM32的按键输入程序及其相关知识点。 首先,STM32的按键输入通常通过GPIO(General-Purpose Input/...

    利用STM32F103ZET6开发板基于HAL库的STM32学习笔记二:按键开发基础例程

    以STM32CubeMX为依托,基于HAL库的STM32学习笔记之按键开发基础,使用STM32F103ZET6开发板,实现对按键的控制,了解了上拉、下拉电阻的原理,体会了按下按键切换状态,与按下按键,松开之后再切换状态的区别

    STM32自学笔记_stm32_STM32自学笔记_

    3. **GPIO(通用输入/输出)**:STM32的GPIO接口用于与外部设备交互,如LED、按键等。你需要学习如何设置GPIO的工作模式(输入、输出、复用功能等)以及配置其速度和推挽/开漏模式。 4. **中断和定时器**:中断是...

    嵌入式软件开发 STM32F407 按键输入 标准库版

    在这个特定的项目中,我们将关注如何使用STM32F407处理按键输入,并通过蜂鸣器和LED灯进行反馈,这些都是嵌入式系统中最基础且重要的交互元素。 首先,我们需要理解STM32F407的GPIO(General Purpose Input/Output...

    STM32的按键输入

    在STM32的开发过程中,按键输入是一个基本但至关重要的功能,它使得用户能够与系统进行交互。下面我们将详细探讨STM32的按键输入相关知识。 首先,STM32的GPIO(General Purpose Input/Output)接口是实现按键输入...

    STM32F103实验:按键输入程序源代码.rar

    在这个实验中,我们将深入理解如何使用STM32F103处理按键输入,通过KEIL开发环境和C语言进行编程。 首先,STM32F103的GPIO(General-Purpose Input/Output)接口是实现按键输入的关键。GPIO端口可以配置为输入或...

    STM32触摸按键

    STM32触摸按键技术是嵌入式系统设计中一个实用且常见的功能,尤其在便携式设备和智能家居产品中广泛应用。STM32是意法半导体(STMicroelectronics)推出的一系列基于ARM Cortex-M内核的微控制器,以其高性能、低功耗...

    STM32-按键输入实验学习笔记

    ### STM32-按键输入实验学习笔记 #### 一、实验背景与目的 在嵌入式系统开发过程中,用户输入是非常关键的一个环节。通过按键获取用户的指令或数据,是实现人机交互的一种常见方式。本实验旨在通过STM32单片机实现...

    stm32f103 按键输入.zip

    【标题】"STM32F103 按键输入"涉及的是嵌入式系统开发中的一个常见任务,即如何在基于STM32F103微控制器的硬件平台上实现用户输入,尤其是通过按键进行交互。STM32F103是意法半导体(STMicroelectronics)生产的ARM ...

    STM32自学笔记.pdf

    [STM32自学笔记].蒙博宇

    STM32单片机通过按键实现简单的时钟功能

    在这个项目中,我们将探讨如何利用STM32单片机通过按键来实现一个简单的时钟功能。这个功能不仅能够帮助初学者理解STM32的IO口操作、中断处理和时间管理,而且也是实际应用中的常见需求。 首先,我们需要了解STM32...

    stm32 按键输入

    在STM32开发过程中,按键输入是一个基础且重要的功能,它使得用户可以通过物理按键与设备进行交互。本篇文章将深入讲解STM32中如何实现按键输入,包括硬件连接、软件编程以及中断处理等方面。 首先,我们要了解STM...

    《STM32自学笔记》随书共享资料

    本资源“《STM32自学笔记》随书共享资料”提供了全面的学习STM32开发所需的知识点,包括基础理论、实践应用和编程技巧。 1. **STM32内核结构**:STM32系列采用的是ARM Cortex-M系列处理器,如M0、M3、M4或M7,它们...

    脉冲宽度计(占空比) 单输入捕获+中断方式(STM32+CubeIDE+HAL)

    【标题】:“脉冲宽度计(占空比) 单输入捕获+中断方式(STM32+CubeIDE+HAL)”所涉及的知识点主要集中在嵌入式系统、微控制器编程以及数字信号处理方面。STM32是一款基于ARM Cortex-M内核的微控制器,而CubeIDE是...

    STM32的按键输入程序

    在STM32中,实现按键输入是基础且重要的功能之一,它通常涉及到GPIO(General Purpose Input/Output)接口的配置、中断处理以及相应的软件编程。 在STM32的按键输入程序中,首先我们需要对GPIO口进行初始化。这包括...

    stm32f103的按键扫描与LED

    STM32F103拥有多个GPIO端口,每个端口包含多个引脚,这些引脚可以配置为输入或输出,以控制LED或读取按键状态。在实现按键扫描时,通常将按键连接到GPIO输入引脚,并设置适当的中断机制,以便在按键按下时能够及时...

    STM32自学笔记 随书资料

    本资源“STM32自学笔记 随书资料”是一份全面的学习STM32开发的参考资料,旨在帮助初学者快速入门并深入理解STM32的工作原理和编程技巧。 一、STM32架构与特性 STM32系列涵盖了多种型号,主要基于Cortex-M0、M3、M4...

    STM32的按键点灯实验寄存器版程序,亲测能用

    本教程将通过一个基础的STM32按键点灯实验,来探讨如何使用寄存器版程序实现这一功能,这对于初学者理解和掌握STM32的工作原理极其重要。 首先,我们要理解STM32的GPIO(General Purpose Input/Output)口,它是STM...

    教程 7、stm32单片机之模拟按键控制单个舵机

    教程 7、stm32单片机之模拟按键控制单个舵机教程 7、stm32单片机之模拟按键控制单个舵机教程 7、stm32单片机之模拟按键控制单个舵机教程 7、stm32单片机之模拟按键控制单个舵机教程 7、stm32单片机之模拟按键控制...

Global site tag (gtag.js) - Google Analytics