标题:
IIC器件的地址不知道怎么办,说说自己的经验
[打印本页]
作者:
xizhe2005
时间:
2017-9-19 18:22
标题:
IIC器件的地址不知道怎么办,说说自己的经验
我们都知道IIC设备在启动信号以后就可以向IIC设备里写一个字节,然后等待IIC设备把SDA拉低,因此可以根据这一点就可以知道IIC的地址是多少,淘宝上买的好多IIC的东西,告诉你的地址并不准确,比如我就遇到过买的PCF8574, 资料里显示地址是0x27,可是怎么也不对,把A0,A1,A2都接地地址换成0X20还是不对,因此我就想到让单片机来完成找地址的工作。单片机是STC的1T单片机,晶振11M,关键代码是:
for(i=0;i<0xff;i++)
{
IICstart();
if(Write1Byte(i)==1)
{
_itoa(i,string,16);//把整数转变成字符串的函数
UartPrintf(string);//串口发送字符串
}
}
itoa函数在下面,我从ZIGBEE的协议栈里拷贝的,很好用
/*********************************************************************
* @fn _itoa
*
* @brief convert a 16bit number to ASCII
*
* @param num -
* buf -
* radix -
*
* @return void
*
*********************************************************************/
void _itoa(uint16 num, uint8 *buf, uint8 radix)
{
char c,i;
uint8 *p, rst[5];
p = rst;
for ( i=0; i<5; i++,p++ )
{
c = num % radix; // Isolate a digit
*p = c + (( c < 10 ) ? '0' : '7'); // Convert to Ascii
num /= radix;
if ( !num )
break;
}
for ( c=0 ; c<=i; c++ )
*buf++ = *p--; // Reverse character order
*buf = '\0';
}
作者:
无量寿经
时间:
2017-9-19 20:32
地址要简单点,如果你认为资料的协议不对,你还能破协议吗?都应该依芯片手册为准,如果手册不对就找器件厂家解决
作者:
笨笨兔
时间:
2017-9-20 15:57
难道不看技术资料?
搞技术还不知道 IIC 地址,回去卖冰棒好了
作者:
xizhe2005
时间:
2017-9-21 11:09
人家告诉你了地址了,可是你怎么也写不进去,你怀疑地址不对,难道就不能用程序找一下地址了,好心把方法分享,却被喷
作者:
xizhe2005
时间:
2017-9-21 11:11
找厂家你不觉得不如自己搞定的好,器件的地址本来就可以测试出来
作者:
imxuheng
时间:
2017-9-21 14:50
PCF8574也分几种,A0、A1、A2三个管脚悬空时,PCF8574 的器件地址为40h, PCF8574A 的器件地址为70h
作者:
hydbw
时间:
2017-9-22 10:25
IIc地址是可以配置的,还是把技术手册看清楚吧
作者:
benlyl
时间:
2024-1-10 21:59
IIc地址是可以配置的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1