#include "key4v4.h"
#include "stm32f10x.h"
#include "delay.h" /*
PA4-L1 PA0-R1
PA5-L2 PA1-R2
PA6-L3 PA2-R3
PA7-L4 PA3-R4
*/ #define R1_L GPIO_ResetBits(GPIOA,GPIO_Pin_0)
#define R2_L GPIO_ResetBits(GPIOA,GPIO_Pin_1)
#define R3_L GPIO_ResetBits(GPIOA,GPIO_Pin_2)
#define R4_L GPIO_ResetBits(GPIOA,GPIO_Pin_3) #define R1_H GPIO_SetBits(GPIOA,GPIO_Pin_0)
#define R2_H GPIO_SetBits(GPIOA,GPIO_Pin_1)
#define R3_H GPIO_SetBits(GPIOA,GPIO_Pin_2)
#define R4_H GPIO_SetBits(GPIOA,GPIO_Pin_3) #define Scanf_R1 R1_L,R2_H,R3_H,R4_H
#define Scanf_R2 R1_H,R2_L,R3_H,R4_H
#define Scanf_R3 R1_H,R2_H,R3_L,R4_H
#define Scanf_R4 R1_H,R2_H,R3_H,R4_L #define L1_Value GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)
#define L2_Value GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)
#define L3_Value GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)
#define L4_Value GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7) int Scanf_Keys()
{
int return_value=-1;
//R1-->Low,R2-->High,R3-->High,R4-->High
//1,4,7,*
Scanf_R1;
if(L1_Value==0)
{
delay_ms(20);
if(L1_Value==0)
{
return_value=1;
}
} if(L2_Value==0)
{
delay_ms(20);
if(L2_Value==0)
{
return_value=4;
}
} if(L3_Value==0)
{
delay_ms(20);
if(L3_Value==0)
{
return_value=7;
}
} if(L4_Value==0)
{
delay_ms(20);
if(L4_Value==0)
{
return_value=10;
}
} //R2-->High,R2-->Low,R3-->High,R4-->High
//2,5,8,0
Scanf_R2;
if(L1_Value==0)
{
delay_ms(20);
if(L1_Value==0)
{
return_value=2;
}
} if(L2_Value==0)
{
delay_ms(20);
if(L2_Value==0)
{
return_value=5;
}
} if(L3_Value==0)
{
delay_ms(20);
if(L3_Value==0)
{
return_value=8;
}
} if(L4_Value==0)
{
delay_ms(20);
if(L4_Value==0)
{
return_value=0;
}
} //R2-->High,R2-->High,R3-->Low,R4-->High
//3,6,9,#
//3,6,9,15
Scanf_R3;
if(L1_Value==0)
{
delay_ms(20);
if(L1_Value==0)
{
return_value=3;
}
} if(L2_Value==0)
{
delay_ms(20);
if(L2_Value==0)
{
return_value=6;
}
} if(L3_Value==0)
{
delay_ms(20);
if(L3_Value==0)
{
return_value=9;
}
} if(L4_Value==0)
{
delay_ms(20);
if(L4_Value==0)
{
return_value=15;
}
} //R2-->High,R2-->High,R3-->High,R4-->Low
//a,b,c,d
//a,b,c,h
Scanf_R4;
if(L1_Value==0)
{
delay_ms(20);
if(L1_Value==0)
{
return_value=11;
}
} if(L2_Value==0)
{
delay_ms(20);
if(L2_Value==0)
{
return_value=12;
}
} if(L3_Value==0)
{
delay_ms(20);
if(L3_Value==0)
{
return_value=13;
}
} if(L4_Value==0)
{
delay_ms(20);
if(L4_Value==0)
{
return_value=14;
}
} return return_value;
} void Scanf_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE); //input
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure); //output
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure); }

/*
3f,6 ,5b,4f,66,6d,7d,7 ,7f,6f,27,4f,7f,27,37,47 1b
0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,e ,a ,b ,c ,h ,f
0, 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,* ,a ,b ,c ,d ,#
0, 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10,11,12,13,14,15 16
0x40='_'
*/

  

key 4v4的更多相关文章

  1. Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  2. Dapper.Contrib:GetAsync<T> only supports an entity with a [Key] or an [ExplicitKey] property

    异常处理:http://www.cnblogs.com/dunitian/p/4523006.html#dapper 原来Model是这样滴 修改后是这样滴 注意点:Model里面的Table和Key ...

  3. Redis百亿级Key存储方案(转)

    1 需求背景 该应用场景为DMP缓存存储需求,DMP需要管理非常多的第三方id数据,其中包括各媒体cookie与自身cookie(以下统称supperid)的mapping关系,还包括了supperi ...

  4. 【详细教程】论android studio中如何申请百度地图新版Key中SHA1值

    一.写在前面 现在越来越多的API接口要求都要求提供我们的项目SHA1值,开发版目前还要求不高,但是发布版是必定要求的.而目前定位在各大APP中也较为常见,当下主流的百度地图和高德地图都在申请的时候会 ...

  5. CentOS:ECDSA host key "ip地址" for has changed and you have requested strict checking(转)

    原文地址:http://blog.csdn.net/ausboyue/article/details/52775281 Linux SSH命令错误:ECDSA host key "ip地址& ...

  6. webstorm license key

    JetBrains WebStorm注册码 UserName: William License Key : ===== LICENSE BEGIN ===== 45550-12042010 00001 ...

  7. VS2015企业版本(安装包+key)+ .NET Reflector 9.0

    Reflector9.0系下载:https://yunpan.cn/cMQj9zWbffSqy  访问密码 55eb VS2015中文企业版: http://pan.baidu.com/s/1eRIo ...

  8. Redis系列之key操作命令与Redis中的事务详解(六)

    序言 本篇主要目的有二: 1.展示所有数据类型中key的所有操作命令,以供大家学习,查阅,更深入的挖掘redis潜力. 2.掌握redis中的事务,让你的数据完整性一致性拥有更优的保障. redis命 ...

  9. SQL Server-聚焦移除Bookmark Lookup、RID Lookup、Key Lookup提高SQL查询性能(六)

    前言 前面几节都是讲的基础内容,本节我们讲讲索引性能优化,当对大数据进行处理时首先想到的就是索引,一旦遇到这样的问题则手忙脚乱,各种查资料,为何平常不扎实基本功呢,我们由浅入深,简短的内容,深入的理解 ...

随机推荐

  1. 转!大端模式&小端模式

    大端模式&小端模式   在C语言中除了8位的char型之外,还有16位的short型,32位的long型(要看具体的编译器),对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器 ...

  2. Alpha

    100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% ...

  3. package-info.java文件详解

    欢迎关注我的社交账号: 博客园地址: http://www.cnblogs.com/jiangxinnju/p/4781259.html GitHub地址: https://github.com/ji ...

  4. 老生常谈的Hibernate二级缓存

    理解缓存的定义: 缓存(Cache): 计算机领域非常通用的概念.它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运 ...

  5. Python中pip版本升级error:You are using pip version 7.1.2, however version 8.1.1 is available.

    使用pip install安装命令时,会报错:You are using pip version 7.1.2, however version 8.1.1 is available. 尝试了推荐解决办 ...

  6. JVM性能调优

    摘自:http://uule.iteye.com/blog/2114697 JVM垃圾回收与性能调优总结 JVM调优的几种策略 一.JVM内存模型及垃圾收集算法  1.根据Java虚拟机规范,JVM将 ...

  7. Xcode8 及iOS10适配问题汇总

    上点干货,目前得知的一些bug解决汇总:iOS10相册相机闪退bughttp://www.jianshu.com/p/5085430b029fiOS 10 因苹果健康导致闪退 crashhttp:// ...

  8. 我的Github注册使用之旅

    [个人介绍] 我是来自网络工程143班的姜金金,学号是1413042066.我没什么大的爱好,闲时喜欢在有阳光的午后喝喝小茶,捧一本书慢慢品茗:也喜欢散散步,欣赏细碎事物的美好,驻足沿路美丽的风景.说 ...

  9. MySql的导入与导出

    1.导入 load data infile '/tmp/yhb/skin_info.txt' into table t_skin fields terminated by '\t' (skin_id, ...

  10. linux shell中,单引号、 双引号,反引号(``),$()的区别

    一.单引号和双引号 首先,单引号和双引号,都是为了解决中间有空格的问题. 空格在linux中时作为一个很典型的分隔符,比如 string1=this is a string,这样执行会报错.为了避免这 ...