OpenEdv-开源电子网

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

关于AT24C02的器件地址位A0,A1,A2

[复制链接]

2

主题

3

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2015-5-16
在线时间
3 小时
发表于 2015-6-2 20:59:21 | 显示全部楼层 |阅读模式
5金钱


后面那一句“必须与硬件引脚保持一致”是指A0,A1,A2的值跟引脚的电平一样吗?



//在AT24CXX指定地址读出一个数据
//ReadAddr:开始读数的地址  
//返回值 :读到的数据
u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{  
u8 temp=0;        
    IIC_Start();  
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0);   //发送写命令
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);//发送高地址
IIC_Wait_Ack();  
}else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   //发送器件地址0XA0,写数据  

IIC_Wait_Ack(); 
    IIC_Send_Byte(ReadAddr%256);   //发送低地址
IIC_Wait_Ack();    
IIC_Start();     
IIC_Send_Byte(0XA1);           //进入接收模式   
IIC_Wait_Ack();  
    temp=IIC_Read_Byte(0);   
    IIC_Stop();//产生一个停止条件    
return temp;
}

这里的ReadAddr范围内任意一个值吗,如果是一个任意值,那么对ATC02来说A0,A1,A2就是任意的,那么地址不是随意的?

最佳答案

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

设计硬件的时候A0,A1,A2是接高电平还是GND就要考虑好,焊上去了器件的地址也就定下来了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2015-3-5
在线时间
44 小时
发表于 2015-6-2 20:59:22 | 显示全部楼层
设计硬件的时候A0,A1,A2是接高电平还是GND就要考虑好,焊上去了器件的地址也就定下来了。
回复

使用道具 举报

19

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2015-3-5
在线时间
44 小时
发表于 2015-6-2 21:15:06 | 显示全部楼层
这个要去查24C02的datasheet,我没记错的话,A0,A1,A2是片选用的,如果是三个都接地的话器件地址后三位就000,如果A0接高电平就是100。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2020-3-19
在线时间
1 小时
发表于 2020-4-28 18:49:58 | 显示全部楼层
多个级连时,A0 A1 A2  片选用的,如果只接一个,拉高或者拉低都行,程序写的时候相应的全1,全0;
回复

使用道具 举报

164

主题

1230

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1476
金钱
1476
注册时间
2014-5-21
在线时间
342 小时
发表于 2022-4-21 17:08:11 | 显示全部楼层
shiashang 发表于 2020-4-28 18:49
多个级连时,A0 A1 A2  片选用的,如果只接一个,拉高或者拉低都行,程序写的时候相应的全1,全0;

悬空默认0吧
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 11:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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