基于C251内核的ISP(SPCA2688A)下的IIC(400KHz)

主机: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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值