HXD019智能红外万能遥控芯片在各平台系统上的应用驱动程序大全
HXD019为红外信号收发处理芯片,支持所有红外设备,需要由主控芯片调用接口函数进入发射数据或者学习数据状态,通讯方式:
三个GPIO通讯或者一对I2C+一个GPIO通讯
(一),三个GPIO通讯:
0,设置三个GPIO和初始化, hxd019D_V1.9.c文件:
将MCU与遥控IC_HXD019相连的所有IO内部下拉需要关闭,Set_SDA_IO()到 GetBUSYStatus()的所有主控芯片和hxd019连接的pin脚设置 函数设置好,分别是SDA,SCL,BUSy各有几个配置函数,上电或待机时均为高电平,然后加入编译,范例如下;
1,发学习数据或码库数据:
1.1.取数据(Size不定长,10到120个字节,学习数据最多是232个字节)范例:
unsigned char data[]={0x30,0x00,0x01,0x1c,0xE3,0x00,0xFF,0x20,0x88,0xD7}
1.2.然后调写函数: void writeI2C(char* data, UINT8 count);
2,学习和发学习数据: hxd019D_V1.9.c文件:
2.1 进入学习:调一次所给函数 : Learn_start2();(此时外部操作);
2.2 等学习完成: 当IO口:busy口由低变高调用函数readI2C2(),范例:
Learn_start2(); //此时busy变低
Delay(50ms); //延时50mS //等硬件稳定)
while(busy ==1) //(等待学习,此时主控可做其它工作,busy变高再回来读数据)
{
Delay(10us) //(学后busy变高)
readI2C2(char* readtempbuf)
};
2.3,学习数据处理:将读到的第一个字节00去掉,前面加0x30,0x03 加校验,30开始
所有数据和的低8位放第232字节,0x30,0x03 +(00 229个字节)+校验(前面231
个字节和的低8位),要用时发回019芯片,函数名writeI2C()(同上);
3,硬件相关:
将硬件连接好(参见后面原理图)
4,时序调整,在hxd019D_V1.9.c文件,
参考<时序参考图.JPG>文档:根据MCU不同时钟调整,测通讯时钟SCL线调以下参数:
#define DELAY_TIME 550
#define DELAY_ST 19 //
(二)一对I2C+一个GPIO通讯:
I2C通讯,每次读写前先写一个FF数据,延时20mS以后再读写正式数据,另一个GPIO的使用方法即busy通讯口和三个GPIO的通讯方式相同,I2C命令参 见上述代码中的数据,从头到尾发完即可,数据已包括I2C地址,I2C数据。