你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

神舟IV学习笔记(二)按键检测

[复制链接]
月之骑士-194136 提问时间:2011-3-1 21:08 /
STM32IO口能够由软件配置成8种模式,如图所示。好出在于在硬件设计的时候,可以方便I/0的选择,从而走线上带来方便。
              模拟输入
输入模式      浮空输入
              输入下拉
              输入上拉
输出模式      开漏输出
              推挽输出
              复用开漏输出
              复用推挽输出
GPIO模式设置.JPG
我们今天使用的按键端口,配置为上拉输出,这样的话,按键未按下时值为1,当按键按下时值为0LED使用的I/O配置为推挽输出模式,用于指示按键的状态。我们专门把按键模块写成子文件,方便下次功能的移植。程序只是简单的叙述了数字输入的检测功能,实际应用中按键还应加延时消抖处理。程序采用轮询查询的方法,实际上使用中断的方法,更加有效。
KEY.C代码:
#include "key.h"
void KEY_Configuration(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);
  GPIO_InitStructure.GPIO_Pin =  KEY1 | KEY3;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//可以省略,下面都是按照上面相同的配置
  //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_InitStructure.GPIO_Pin =  KEY2;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_InitStructure.GPIO_Pin =  KEY4;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
}
KEY.H代码
#ifndef __KEY_H
#define __KEY_H      
#include "stm32f10x_conf.h"
#define KEY1 GPIO_Pin_4
#define KEY2 GPIO_Pin_10
#define KEY3 GPIO_Pin_13
#define KEY4 GPIO_Pin_0
#define Read_key1() ((GPIOC->IDR & KEY1)?0:1)//按下时才为0
#define Read_key2() ((GPIOB->IDR & KEY2)?0:1)
#define Read_key3() ((GPIOC->IDR & KEY3)?0:1)
#define Read_key4() ((GPIOA->IDR & KEY4)?0:1)
//#define Read_key1() !GPIO_ReadInputDataBit(GPIOC, KEY1)
//#define Read_key2() !GPIO_ReadInputDataBit(GPIOB, KEY2)
//#define Read_key3() !GPIO_ReadInputDataBit(GPIOC, KEY3)
//#define Read_key4() !GPIO_ReadInputDataBit(GPIOA, KEY4)
void KEY_Configuration(void);
#endif
 

3.1-按键检测.zip

下载

81.94 KB, 下载次数: 19, 下载积分: ST金币 -1

收藏 评论1 发布时间:2011-3-1 21:08

举报

1个回答
zttyler-56924 回答时间:2011-3-14 00:54:34

RE:神舟IV学习笔记(二)按键检测

我正学习,谢谢了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版