单片机学习小组
直播中

刘强

7年用户 1198经验值
私信 关注

IIC_Send_Byte(0XA0+((ReadAddr/256)<<1))是什么意思?

IIC_Send_Byte(0XA0+((ReadAddr/256)<<1))是什么意思?

回帖(1)

赵阳

2022-1-24 10:15:42
想要搞清楚的话,就得先把下面这个数据手动中的关键字句读明白。多读遍,我就读了快10几遍。
设备地址字由必填的“1”、“0”组成” 前四个
最高有效位的序列,如图所示。这对所有串行 EEPROM 设备都是通用的。
接下来的 3 位是 1K/2K EEPROM 的 A2、A1 和 A0 器件地址位。
这 3 位必须与其对应的硬接线输入引脚进行比较。
4K EEPROM 仅使用 A2 和 A1 设备地址位,第三位是
内存页地址位。两个器件地址位必须与其对应的
硬接线输入引脚进行比较。A0 引脚未连接。
8K EEPROM 仅使用 A2 设备地址位,接下来的两位用于
内存页寻址。A2 位必须与其对应的硬接线
输入引脚进行比较。A1 和 A0 引脚未连接。
16K 不使用任何设备地址位,而是将三位用于
内存页面寻址。4K、8K 和 16K 设备上的这些页面寻址位
应被视为随后的数据字地址的最高有效位。
A0、A1 和 A2 引脚未连接。
I_Send_Send_(0XA0+ReadAddr/256)<<1)(Byte(Byte):这句话在AT24C16-AT24C02;这句话是通用的;会这样写;
首先对于AT系列,大分块大小为256字节,小分块区间为8位c02和c04;以字节为单位,c02容量需要为256
。 ),板表示每个字节的地址
,就可以研究一下24c02的A24c02的A230个起飞点?
如果直接触发哪一个地方,这三个地方可以为你决定访问这三个地方,这三个地方可以为
我们提供6个6个地点。如何快速的那些我想访问的是
哪个256空间呢!这样的芯片设计就是这样的),“空位”与 ATc04 硬件连接应该很好,
如果硬件也将 A0~A23 个这个目标直接问到,那么你猜不出什么结果, ,就是我们定位到0~256的空间,后面的就找到了,就成了c02。
IIC_Send_Byte(0XA0+((ReadAddr/256)<))
中(ReadAddr/256)<1)这半句,就是选择这个发送256空间的中的两个作用。
还有一句是ReadAddr% 2568个空间中如果知道56个56位的空间,那么这个空间是怎么安排的。对的就是
AT24C,它有这样的空间,那呢,那就在硬件上这把再把这3个写出来的时候,我想再写1个
呢~(25256 )空间
这是AT2~16这种型号的芯片,如果超过16,你猜猜怎么搞呢!对,对,没错,开发16位又分了两次了,就是这样!希望能有大家解惑。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分