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

查看: 3087|回复: 1

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

[复制链接]

13

主题

23

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-3-1 21:08:09 | 显示全部楼层 |阅读模式
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

<
回复

使用道具 举报

0

主题

47

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-3-14 00:54:34 | 显示全部楼层

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

我正学习,谢谢了
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版