资源简介
直接调用接口,单独获取键值,精准,稳定。同时为C语言开发,精简,方便,适合各类微处理器移植。
代码片段和文件信息
/**********************************
CY 为单片机CY位,移植时可根据芯片更改
**********************************/
#include “BS8116A.h“
void BS8116A_int()
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.Mode = GPIO_OUT_OD;
GPIO_Inilize(GPIO_P3&GPIO_InitStructure);
}
void BS8116A_Start()
{
SDA = 1;
SCL = 1;
Delay5us();
SDA = 0;
Delay5us();
SCL = 0;
}
void BS8116A_Stop()
{
SDA = 0;
SCL = 1;
Delay5us();
SDA = 1;
Delay5us();
}
bit BS8116A_RecvACK()
{
SCL = 1;
Delay5us();
CY = SDA;
SCL = 0;
Delay5us();
return CY;
}
void BS8116A_SendByte(u8 dat)
{
u8 i;
for (i=0; i<8; i++)
{
dat <<= 1;
SDA = CY;
SCL = 1;
Delay5us();
SCL = 0;
Delay5us();
}
BS8116A_RecvACK();
}
u8 BS8116A_RecvByte()
{
u8 i;
u8 dat = 0;
SDA = 1;
for (i=0; i<8; i++)
{
dat <<= 1;
SCL = 1;
Delay5us();
dat |= SDA;
SCL = 0;
Delay5us();
}
return dat;
}
//0---ACK1---NACK
void BS8116A_SendACK(bit ack)
{
SDA = ack;
SCL = 1;
Delay5us();
SCL = 0;
Delay5us();
}
u8 Get_Key(u8 dat)
{
u8 Temp;
BS8116A_Start(); //起始
BS8116A_SendByte(0xA0); //发送
BS8116A_SendACK(0); //ack
BS8116A_SendByte(dat); //发送
BS8116A_SendACK(0); //ack
BS8116A_Start(); //起始
BS8116A_SendByte(0xA1); //发送
BS8116A_SendACK(0); //ack
Temp = BS8116A_RecvByte(); //读取
BS8116A_SendACK(1); //nack
BS8116A_Stop(); //结束
return Temp;
}
void main()
{
u8 Key_HKey_L;
u16 Key;
while(1)
{
Key_H = Get_Key(0x09);
Key_L = Get_Key(0x08);
Key = (Key_H<<8) | Key_L;
printf(“Key value:%X\n“Key);
delay_ms(200);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2343 2018-08-08 15:28 BS8116A.c
文件 350 2018-08-08 15:25 BS8116A.h
文件 873635 2018-08-08 09:32 simBS81xA-xv150.pdf
----------- --------- ---------- ----- ----
876328 3
- 上一篇:MFC 实现的坦克大战
- 下一篇:C++primer第四版中文版.epub
相关资源
- 纯C语言写的hex转bin小工具
- 纯C++方式生成复杂格式的excel文件(
- 远程控制源代码(纯C)
- 敢死队问题纯C语言编写
- [纯C语言 + Win32 API]一步一步写个围棋
- 纯C语言+libalsa实现最简单录音程序
- utf8编码解码的纯C++代码
- Linux下纯C语言 多线程 人机 贪吃蛇
- 五子棋纯c语言代码(测试完美)
- 纯C语言实现工资管理系统
- 纯C语言实现https的post和get不依赖任何
- c语言 根据坐标 截取yuv420p 区域 保存
- 纯C语言的串口YModem程序
- mpu9250九轴算法-纯c语言
- Linux 串口源代码纯C++
-
纯C语言解析xm
l字符串 - 纯C语言写计算器界面源码
- 纯C++打造的Splash Screen类打造专业的启
- EasyHook 函数钩子 最好的完整稳定的钩
-
纯C语言解析xm
l字符串含 - 纯c语言迷宫源码.zip
- 稳定匹配算法源代码C/C++
- 纯C++实现bmp图片旋转
- 纯C语言 实现SVM,VS工程,亲测可用
- 纯c读写ini配置文件
- c语言编写打字游戏
- bmp2jpeg图像压缩
- 光线跟踪纯C++)
- 通用红黑树Tree-Map容器纯C实现
- 最小生成树课程设计完美参照--本人倾
评论
共有 条评论