STM32---按键学习

#include "stm32f10x.h"

GPIO_InitTypeDef GPIO_InitStructure;//声明GPIO_InitStructure

void LED_Init() {

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开GPIOA时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

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

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  // 最高输出速率50MHz GPIO_Init(GPIOA, &GPIO_InitStructure);             //初始化GPIOA }

void BEEP_Init() {

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); //开GPIOD时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;

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

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  // 最高输出速率2MHz GPIO_Init(GPIOD, &GPIO_InitStructure);

}

void KEY_Init() {

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);//开GPIOD时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;       //上拉输入

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  // 最高输出速率2MHz GPIO_Init(GPIOD, &GPIO_InitStructure);              //初始化GPIOD

}

int main() {

LED_Init(); BEEP_Init(); KEY_Init(); for(;;) {

if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_13)==0)//按键按下 {

GPIO_SetBits(GPIOA, GPIO_Pin_4);//置一,发光二级管亮 GPIO_ResetBits(GPIOD, GPIO_Pin_3);//清零,蜂鸣器响 }

else//按键未按下 {

GPIO_ResetBits(GPIOA, GPIO_Pin_4);//清零,发光二级管灭 GPIO_SetBits(GPIOD, GPIO_Pin_3);//置一,蜂鸣器不响 } }

}

时间: 2024-10-09 23:54:32

STM32---按键学习的相关文章

基于STM32的学习型通用红外遥控设备的设计实现(三)

3.1 红外脉宽存储及FLASH的读写 根据STM32型号的不同,FLASH容量由16K到1024K不等. FLASH模块主要由三部分组成:主存储器.信息块.闪存存储器接口寄存器.模块组织见<STM32中文参考手册>小节<2.3.3 嵌入式闪存>. 主存储器用来存放代码和数据常数,对于大容量产品,划分为256页,每页2K字节:中小容量产品每页则是1K.信息块的启动程序代码用来存储ST自带的启动程序,用于串口下载,用户选择字节一般用来配置写保护.读保护.闪存存储器接口寄存器是整个闪存

STM32 CubeMX 学习:001-GPIO的使用

背景 在上一讲STM32 CubeMX 学习:搭建开发环境中,我们已经利用CubeMx搭建了可编译的工程. 今天就开始来介绍STM32 GPIO的有关知识,以及如何驱动它. HOST-OS : Windows-10 STM32 Cube :v5.6 MCU : STM32F429 LIB : stm32cube_fw_f4_v1250 知识 在STM32中,GPIO有这些属性:输入.输出.复用功能:也可以设置速度,上下拉,推挽开漏等电器特性. 在Drivers/STM32F4xx_HAL_Dri

[stm32] 按键

防抖时间设的不是太好.... 1 /* 2 ::按键控制 3 PA8接LED,PE2接按键 4 */ 5 #include"stm32f10x.h" 6 void RCC_Configuration(void); 7 void GPIO_Config(void); 8 void Delay(__IO uint32_t nCount); 9 10 int main() 11 { 12 RCC_Configuration(); //系统时钟配置|使能GPIO口 13 GPIO_Config

STM32 FSMC学习笔记+补充(LCD的FSMC配置)

STM32 FSMC学习笔记+补充(LCD的FSMC配置) STM32 FSMC学习笔记 STM32 FSMC的用法--LCD

STM32单片机学习(11) DS18B20温度传感器实验

STM32单片机学习(11) DS18B20温度传感器实验 本程序主要实现 DS18B20温度传感器数据获取,并利用串口通信把温度数据传至计算机 注:使用普中科技开发板测试时,需要拔掉Boot1插口,因为用到的是PA15管脚, 由开发板电路图可知,需要改变PA15 管脚的映射,将其设置成普通IO口 参考资料 DS18B20中文手册.pdf   http://download.csdn.net/detail/leytton/7742193 STM32-外设篇 视频教程(Cortex-M3)-主讲人

stm32按键识别

刚写了一个关于stm32单片机的按键识别的程序.目的,同时识别多个按键,并且不浪费cpu的时间. 关于去抖动,以前以为是在按键的时候,手会抖动.通过程序验证,这个确实是误解.这个应该是防止意外干扰.以我的手按键的速度,单次持续时间小于0.2秒钟. 前提:引脚低电平为按键按下.为每个按键设置3个变量,分别是识别过程的计数器keycnt.识别的结果keystat.可以判定的结果keymod(比如按下.释放.单击.双击.长按等). 本例 只有单击一种判断,keymod暂时不用.另外考虑,按键判定后,直

STM32 UVC学习笔记2

主机环境:Windows 7 SP1 开发环境:MDK5.18 目标板:STM32F103C8T6 开发库:STM32F1Cube库和STM32_USB_Device_Library 承接前文,动手之前看见昨天的文章居然有900+的阅读量,我还震惊了好久,之前写的一些东西隔天一般就十几二十的阅读量,这次居然直接上升了一个数量级,由此,可以看到大家对于STM32 UVC的学习很有兴趣,也更加激励了我,我只能尽可能把我在学习STM32 UVC的过程中遇到的问题分享给大家,让大家少走弯路,共同进步.

新手上手STM32是学习库开发还是寄存器开发?

有需要资料的可以加我:腾讯QQ3249838614经常会有一些刚接触STM32的人问这个问题,也在其他论坛回答过, 我个人认为,在回答这个问题之前,你得先问清楚自己,我学习stm32.或者再往更深的地方走,我学习单片机,究竟是为了什么?你现在是处于什么状态?你是学生还是已经参加工作了?你的专业或者你的工作是与单片机相关的还是不相关的?你未来是否想从事这个行业或者想跳槽到这个行业? 这些所有的问题的答案都可以把学习单片机的人分为两大类:第一类:学习单片机是为了把这个技术当做一技之长安身立命:第二类

STM32入门学习路线

可以说就目前的市场需求来看,stm32在单片机领域已经拥有了绝对的地位,51什么的已经过时了也只能拿来打基础了,最后依然会转到stm32来,也正是因为这样stm32的学习者越来越多,其中不难发现绝大部分的stm32的学习者是在入门阶段的,所以今天我们就来聊聊stm32的入门学习路线. 先来看个图,相信会有所了解. 首先学习stm32 不管是C语言还是汇编肯定跑不了的所以C语言一样要打好基础,尤其是C语言中的指针,结构体,循环 等等一些最基础的知识你要能够熟练应用,要不然对于从事stm32开发的难

STM32单片机学习心得——GPIO(2)使用GPIO做输入

以探索者板载按键为例,以下是板载按键的电路图,此文章不包括RESET按键的相关内容 其中,KEY_UP -> PA1 KEY_0  -> PE4 KEY_1  -> PE3  KEY_2  -> PE2 事实上,按键相当于一个开关,按下时开关导通,两端电平相同,GPIO接口电平发生变化,通过库函数读取后触发一系列操作. 对于按键的初始化,以上图为例,代码如下(为节约时间,只放上关键代码) 1 void KEY_Init(void) 2 { 3 4 GPIO_InitTypeDef