找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5743|回复: 7
打印 上一主题 下一主题
收起左侧

IIC器件的地址不知道怎么办,说说自己的经验

[复制链接]
跳转到指定楼层
楼主
ID:117433 发表于 2017-9-19 18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
         我们都知道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';
}





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:60379 发表于 2017-9-19 20:32 | 只看该作者
地址要简单点,如果你认为资料的协议不对,你还能破协议吗?都应该依芯片手册为准,如果手册不对就找器件厂家解决
回复

使用道具 举报

板凳
ID:158375 发表于 2017-9-20 15:57 | 只看该作者
难道不看技术资料?
搞技术还不知道 IIC 地址,回去卖冰棒好了
回复

使用道具 举报

地板
ID:117433 发表于 2017-9-21 11:09 | 只看该作者
人家告诉你了地址了,可是你怎么也写不进去,你怀疑地址不对,难道就不能用程序找一下地址了,好心把方法分享,却被喷
回复

使用道具 举报

5#
ID:117433 发表于 2017-9-21 11:11 | 只看该作者
找厂家你不觉得不如自己搞定的好,器件的地址本来就可以测试出来
回复

使用道具 举报

6#
ID:151348 发表于 2017-9-21 14:50 | 只看该作者
PCF8574也分几种,A0、A1、A2三个管脚悬空时,PCF8574 的器件地址为40h, PCF8574A 的器件地址为70h
回复

使用道具 举报

7#
ID:234820 发表于 2017-9-22 10:25 | 只看该作者
IIc地址是可以配置的,还是把技术手册看清楚吧
回复

使用道具 举报

8#
ID:1108858 发表于 2024-1-10 21:59 | 只看该作者
IIc地址是可以配置的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表