栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

BS814A触摸芯片用法,IIC(I2C)使用讲解以及实例代码基于C语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

BS814A触摸芯片用法,IIC(I2C)使用讲解以及实例代码基于C语言

一:了解触摸芯片的工作协议

       1:资料   BS814A(8SOP)为例:

2:数据讲解

        此芯片是通过IIC接收八位数据来判断四个按键是否按下的,

        bit0-3代表Key1-4脚位的触摸按键的状态,0代触摸按键按下,1则为没有按下。

         bit6-4代表按键上有几个按键按下,000表示没有按键按下,100表示四个按键全部按下。

         bit7为停止位,此位总是为“1”。

3:iic数据接收讲解

        BS814A芯片是作为从机使用的,在接收BS814A时,主机的配置为下:

        初始化配置:数据线和时钟线都配置为输出高。

        起始信号配置:时钟线输出高->数据线输出高->延时500us->数据线配置低->延时500us->时钟线配置低。

         停止信号:时钟线配置低->延时500us->数据线输出低->延时500us->数据线和时钟线配置为高。

         读取一个字节数据:发送其实信号->数据线设置为输入模式->时钟线配置为高是开始读数据,匹配为低时停止读数据,直到八位数据全部读取完成->判断bit7是否为1,为1则正确,为0则错误。示例代码如下:

//发送起始信号
void _user_iic_start(){		
	IIC_SCL_OUTMODE;        
	IIC_SCL_OPEN;                //时钟线配置输出高
	IIC_DATA_OUTMODE;
	IIC_DATA_OPEN;	            //数据线配置输出高
	DelayUs_M(500);            //延时500us
	IIC_DATA_CLOSE;	            //数据线配置低
	DelayUs_M(500);
	IIC_SCL_CLOSE;                //时钟线配置低
}

//发送停止信号
void _user_iic_stop(){	
	IIC_SCL_CLOSE;	
	DelayUs_M(500);
	IIC_DATA_OUTMODE;
	IIC_DATA_CLOSE;
	DelayUs_M(500);
	IIC_DATA_OPEN;
	IIC_SCL_OPEN;
}

//读取一个字节
uint8_t IIC_Read_Byte( ){
	uint8_t i = 0;        
    uint8_t receive = 0;       //用于存放读取的数据
	_user_iic_start();         //发送起始信号    
	IIC_DATA_INMODE;		   //数据线设置为输入模式
    for(i = 0;i < 8;i++) {
        IIC_SCL_CLOSE;
        DelayUs_M(500); 
		IIC_SCL_OPEN;		//时钟线拉高开始读数据
		DelayUs_M(250);
        if(user_gpio_get_value(IIC_IO_DATA) == 1){	//读取数据线的高低电平
        	receive |= (1< 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529013.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号