主机:SPCA2688A
从机:MCP9808、SHT3XA
通信速率:400KHz
1. 状态定义
/*SCL,SDA状态定义*/
#define SCL_OUT_HIGH NBYTE[0x2043] |= 0x04 //SCL输出高电平
#define SCL_OUT_LOW NBYTE[0x2043] &= ~0x04 //SCL输出低电平
#define SDA_OUT_HIGH NBYTE[0x2043] |= 0x08 //SDA输出高电平
#define SDA_OUT_LOW NBYTE[0x2043] &= ~0x08 //SDA输出低电平
2. 设备地址
/*定义设备地址(7位地址)*/
#define ADDR1_SHT3XA 0x44
#define ADDR2_SHT3XA 0x45
#define ADDR_MCP9808 0x18
3. 延时时间
/*定义延时时间*/
void iicDelay(void)
{
_nop_(); //基于C251的空指令延时
_nop_();
_nop_();
_nop_();
}
4. 初始化
/*IIC初始化*/
void iicInit(void)
{
NBYTE[0x20E8] |= 0x18; //使能GPIO下拉功能
NBYTE[0x2041] |= 0x0C; //配置SDA,SCL为输出
NBYTE[0x2043] |= 0x0C; //默认输出高电平
NBYTE[0x2074] &= ~0x0C; //失能相关中断
pcaDelayUsec_ROM(