TI中文支持网
TI专业的中文技术问题搜集分享网站

关于RF430CL330H的通信

用的DLP-RF430BP做测试,其中:

地址E0、E1、E2接地,地址应该为0x28,使用IIC通讯方式,CS、SCK接地。

代码已经测了两天了,就是通不过,start及stop代码应该没有问题,最后只测一段写入地址的代码,仍然测不过(cc2530,SCL P1.4,SDA P1.5,延时2us):

void Write_Byte(uchar wdata)
{
uchar i;
P1DIR |= 0x20;
SCL = 0;
for(i=0;i<8;i++)
{ if(wdata & 0x80)
SDA = 1;
else
SDA = 0;

Delay_1us(delay_int);
SCL = 1;
Delay_1us(delay_int);
SCL = 0;
Delay_1us(delay_int);
wdata <<= 1;
}
SDA = 1;
P1DIR &= ~0x20;
SCL = 1;
Delay_1us(delay_int);

while(!(SDA == 1));
Delay_1us(delay_int);
SCL = 0;
Delay_1us(delay_int);
}

有这么几个问题:

1,关于地址的,IIC的使用地址为0x28,还有一个写入时的读写方式R/W的,在地址的最后位,写则为0x50、读为0x51,写入设备地址的时候,是应该用0x28,还是后面的,我都试过,不行,不知道是不是我的上段代码有问题。

2,将其断电后重新连接,在最后的while(!(SDA==1))的位置,可能是会通过的,之后就又卡在这里了。我还试过,随便换一个地址也会出现通过的情况,那肯定也是不正常的,因为设备地址是不存在的。但是这里就又有了个问题:命令是发到总线,但设备不存在,是谁拉低了SDA呢

能力问题,已经对照文档多次,也搜索过了代码参考,仍然未能过关,还有对技术用语的理解,不知道是不是出现了偏差,请指点,谢谢。

Jx Wang:

回复 Viki Shi:

谢谢,我再发一下

Viki Shi:

回复 Jx Wang:

不客气

赞(0)
未经允许不得转载:TI中文支持网 » 关于RF430CL330H的通信
分享到: 更多 (0)