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 & ...
随机推荐
- Android 浏览器 —— 使用 WebView 实现文件下载
对当前的WebView设置下载监听 mCurrentWebView.setDownloadListener(new DownloadListener() { @Override public void ...
- .NET 程序集单元测试工具 SmokeTest 应用指南
Smoke Test(冒烟测试),也称Regression Test(回归测试),是对软件的安装和基本功能的测试.一般地我们使用脚本来实现Smoke Test的自动化,可借用虚拟机的snapshot机 ...
- 2、摘要函数——MD2/MD4/MD5数字签名
摘要是用来防止数据被私自改动的方法,其中用到的函数叫做摘要函数.这些函数的输入可以是任意大小的信息,但是输出是大小固定的摘要.摘要有个重要的特性:如果改变了输入信息的任何内容,即使改变一位,输出也将发 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统--任务调度系统解析
1.任务主界面.任务可以被挂起,启动,和删除.来自著名Quartz扩展 2.任务可以是执行的SQL命令,存储过程,或者是一个后台方法 3.极其复杂的调度任务,循环次数,可以自行设置.并可以间隔执行,比 ...
- Geotrellis系列文章链接
本文存放了我在博客园中撰写的Geotrellis系列文章链接,方便查阅! 一.geotrellis使用初探 二.geotrellis使用(二)geotrellis-chatta-demo以及geotr ...
- CSS常见居中讨论
先来一个常见的案例,把一张图片和下方文字进行居中: 首先处理左右居中,考虑到img是一个行内元素,下方的文字内容也是行内元素,因此直接用text-align即可: <style> .con ...
- Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App
安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...
- java web学习总结(三十一) -------------------EL表达式
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- 日期关联取最近日期的SQL
SQL怎么关联,如下图A表用日期加产品编号关联B表的时候,如果日期不存在,则取之前最近一个日期的值,比如A表2012-07-31 关联B表,B表没有对应日期的,就取2012-07-30的 A表 ...
- 关于Android中的三级缓存
三级缓存的提出就是为了提升用户体验.当我们第一次打开应用获取图片时,先到网络去下载图片,然后依次存入内存缓存,磁盘缓存,当我们再一次需要用到刚才下载的这张图片时,就不需要再重复的到网络上去下载,直接可 ...