飞快旋转的风车 发表于 2023-7-27 11:32:00

IIC挂载多个从机,地址如何修改



单从机模式中,一直使用地址如上图,但是多从机模式下,这个地址不唯一,求大神指导如何修改文件,slave addr分别为0XEC0X800X40

乘风飞扬 发表于 2023-7-27 13:22:38

访问不同从机时使用不同的地址就行,例如定义3个从机地址:
#define SLA1W    0xEC
#define SLA2W    0x80
#define SLA3W    0x40
SLAR是将SLAW的bit0置1,做为读地址。

读写时使用不同的地址访问不同的从机:
I2C_WriteNbyte(SLAxW, 0, tmp, 4);
I2C_ReadNbyte(SLAxW, 0, tmp, 4);

飞快旋转的风车 发表于 2023-7-27 13:35:19

乘风飞扬 发表于 2023-7-27 13:22
访问不同从机时使用不同的地址就行,例如定义3个从机地址:
#define SLA1W    0xEC
#define SLA2W    0x80


有没有一种可能,我在头文件中定义三个或更多的从机地址(为了方便以后更换不同地址的从机设备),在不大面积改动I2C.C的读写程序,

乘风飞扬 发表于 2023-7-27 13:40:28

飞快旋转的风车 发表于 2023-7-27 13:35
有没有一种可能,我在头文件中定义三个或更多的从机地址(为了方便以后更换不同地址的从机设备),在不大 ...

可以的,把从机地址定义放到头文件,I2C.c文件就不用再修改了。
页: [1]
查看完整版本: IIC挂载多个从机,地址如何修改