OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3752|回复: 3

I2C地址问题求助!

[复制链接]

6

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2018-8-23
在线时间
12 小时
发表于 2018-10-17 21:08:01 | 显示全部楼层 |阅读模式
1金钱
大神们,请教一个I2C问题,关于阿波罗板子上的AT24C02的I2C通信问题

123.jpg

在原理图中,写的IIC地址是0X50, 但是代码里边却是0XA0,代码如下

void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{                                                                                                                                                                                          
    IIC_Start();  
        if(EE_TYPE>AT24C16)
        {
                IIC_Send_Byte(0XA0);            //发送写命令
                IIC_Wait_Ack();
                IIC_Send_Byte(WriteAddr>>8);//发送高地址          
        }else IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));   //发送器件地址0XA0,写数据          
        IIC_Wait_Ack();          
    IIC_Send_Byte(WriteAddr%256);   //发送低地址
        IIC_Wait_Ack();                                                                                                              
        IIC_Send_Byte(DataToWrite);     //发送字节                                                          
        IIC_Wait_Ack();                                
    IIC_Stop();//产生一个停止条件
        delay_ms(10);         
}


问题1:这两个地址为什么不一样呢?
问题2:标如果换一个其他器件,我拿到器件原理图,该怎么确认代码该使用哪个地址呢?
希望大佬们不吝赐教啊!

最佳答案

查看完整内容[请看2#楼]

1,因为芯片不一样。 2,看芯片datasheet
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-10-17 21:08:02 | 显示全部楼层
1,因为芯片不一样。
2,看芯片datasheet
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2018-8-23
在线时间
12 小时
 楼主| 发表于 2018-10-18 08:44:44 | 显示全部楼层
正点原子 发表于 2018-10-17 21:08
1,因为芯片不一样。
2,看芯片datasheet

原子哥,第一个问题里这个图是我从咱们开发板的原理图上截图下来的,你说的不一样指的是咱们板子上实际用的不是这个芯片吗。另外我昨天逛论坛,看到有人说左移一位的事情,0X50左移一位就是0XA0了,可是我不明白为啥要左移一位
回复

使用道具 举报

6

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2018-8-23
在线时间
12 小时
 楼主| 发表于 2018-10-18 08:51:18 | 显示全部楼层
正点原子 发表于 2018-10-17 21:08
1,因为芯片不一样。
2,看芯片datasheet

早上起来突然想明白了,左移一位是因为要给第8位留出读写位。。实际上5-7位的地址还是0X50,我这么理解应该是对的吧
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 09:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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