STM32 按键输入
#include "stm32f10x.h"
#include "key.h"
//按键初始化函数
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
#ifndef __KEY_H #define __KEY_H #define KEY0 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)//读取按键0 #define KEY1 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)//读取按键1 #define KEY2 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)//读取按键2 #define KEY3 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_15)//读取按键3 #define KEY4 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4)//读取按键0 #define KEY5 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5)//读取按键1 #define KEY6 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6)//读取按键2 #define KEY7 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7)//读取按键3 #define KEY8 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)//读取按键3 void KEY_Init(void);//IO初始化 #endif
#include "stm32f10x.h"
#include <stdio.h>
#include "sys.h"
#include "delay.h"
#include "oled.h"
#include "24l01.h"
#include "key.h"
/* OLED
SCL-D0--PC15
SDA-D1--PC14
RST---PC13
DC---PB4*/
/*
2401--SPI1
MISO-PA6 SCK-PA5 CE-PB3
IRQ-PA3 MOSI-PA7 CSN-PA2
*/
// c8t6
u8 tmp_buf[] ;
int main(void)
{
Stm32_Clock_Init();//系统时钟设置为外部晶振,9倍频
delay_init();//系统SysTick初始化
JTAG_Set(JTAG_SWD_DISABLE); //=====关闭JTAG接口
JTAG_Set(SWD_ENABLE); //=====打开SWD接口 可以利用主板的SWD接口调试
OLED_Init();
KEY_Init();
//NRF24L01_Init(); //=====NRF24L01无线模块初始化
// NRF24L01_FindMyself(); //=====NRF24L01无线模块检查 检测不到就停在这边自检闪灯
//tmp_buf[0]= 1 ;
)
{
// TX_Mode();
// OLED_ShowNumber(0,30,tmp_buf[0],5,12);
// NRF24L01_TxPacket(tmp_buf);
)
{
delay_ms();
OLED_ShowString(,,"Key0");
}
)
{
delay_ms();
OLED_ShowString(,,"Key1");
}
)
{
delay_ms();
OLED_ShowString(,,"Key2");
}
)
{
delay_ms();
OLED_ShowString(,,"Key3");
}
)
{
delay_ms();
OLED_ShowString(,,"Key4");
}
)
{
delay_ms();
OLED_ShowString(,,"Key5");
}
)
{
delay_ms();
OLED_ShowString(,,"Key6");
}
)
{
delay_ms();
OLED_ShowString(,,"Key7");
}
)
{
delay_ms();
OLED_ShowString(,,"Key8");
}
OLED_Refresh_Gram();
}
}
STM32 按键输入的更多相关文章
- STM32按键输入
下面3个接上拉电阻 WK_UP接上拉电阻 因为用到了PA,PC,PH所以要使能3个模块 STATIC静态变量只会初始化一次 每次调用flag++,不会再初始化为0:起记忆作用. 最关键的是头 件不要忘 ...
- STM32基本GPIO操作:按键输入(扫描+外部中断)
(涉及专有名词较多,难免解释不到位,若有错误还请指出,谢谢!) 硬件连接图如下: 一.扫描 思路是在main函数中通过死循环来扫描端口电平状态检测,以此判断按键是否按下.实现较为简单. 1.初始化(注 ...
- STM32之输入捕获以及小小应用(库)
五一之际,先祝大家五一快乐.其实快乐很简单,工作的人有假放,学习的人也有假放,像我,有假放才有更多的时间学自己想学的东西.51假期学51,可惜没有32假期呀.好了..言归正传,大家听过吸星大法吧..在 ...
- linux输入子系统(input subsystem)之按键输入和LED控制
实验现象:在控制台打印按键值,并且通过按键控制相应的LED亮灭. 1.代码 input_subsys_drv.c #include <linux/module.h> #include &l ...
- Python脚本控制的WebDriver 常用操作 <十二> send_keys模拟按键输入
下面将使用WebDriver中的send_keys来模拟键盘按键输入 测试用例场景 send_keys方法可以模拟一些组合键操作: ctrl+a ctrl+c ctrl+v 等. 另外有时候我们需要在 ...
- ADB——模拟手机按键输入
基本命令 adb 模拟按键输入的命令主要通过 input 进行 Usage: input [<source>] <command> [<arg>...] The s ...
- adb命令模拟按键输入keycode
adb命令模拟按键输入keycode 2017年05月18日 14:57:32 阅读数:1883 例子: //这条命令相当于按了设备的Backkey键 adb shell input keyevent ...
- linux下如何模拟按键输入和模拟鼠标【转】
转自:http://www.cnblogs.com/leaven/archive/2010/11/30/1891947.html 查看/dev/input/eventX是什么类型的事件, cat /p ...
- adb shell命令模拟按键/输入input使用keycode 列表详解
在adb shell里有一个非常使用的命令,模拟按键输入,这里首先不要理解为是键盘的模拟按键,下面命令的使用和键值做一个详解. input命令格式 adb shell input keyevent & ...
随机推荐
- 大数据时代下的SQL Server第三方负载均衡方案----Moebius测试
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...
- c#操作MangoDB 之MangoDB CSharp Driver驱动详解
序言 MangoDB CSharp Driver是c#操作mongodb的官方驱动. 官方Api文档:http://api.mongodb.org/csharp/2.2/html/R_Project_ ...
- <JavaScript语言精粹>-读书笔记(一)
用object.hasOwnProperty(variable)来确定这个属性名是否为该对象成员,还是来自于原型链. for(my in obj){ if(obj.hasOwnProperty(my) ...
- C#-正则,常用几种数据解析-端午快乐
在等待几个小时就是端午节了,这里预祝各位节日快乐. 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢. 开始吧 ...
- geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑
目录 前言 若干坑 总结 一.前言 近期干了一件事情,将geotrellis程序移植到CDH中(关于CDH,可以参考安装ClouderaManager以及使用ClouderaManage ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)
RAC 特殊问题和实战经验(五) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- 【分布式】Zookeeper使用--Java API
一.前言 上一篇博客我们通过命令行来操作Zookeper的客户端和服务端并进行相应的操作,这篇主要介绍如何通过API(JAVA)来操作Zookeeper. 二.开发环境配置 首先打开Zookeeper ...
- SpringBoot中yaml配置对象
转载请在页首注明作者与出处 一:前言 YAML可以代替传统的xx.properties文件,但是它支持声明map,数组,list,字符串,boolean值,数值,NULL,日期,基本满足开发过程中的所 ...
- react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置
参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...
- 分布式任务&分布式锁(li)
目前系统中存在批量审批.批量授权等各个操作,批量操作中可能因为处理机器.线程不同,造成刷新缓存丢失授权等信息,如批量审批同一用户权限多个权限申请后,流程平台并发的发送多个http请求到acl不同服务器 ...