TI论坛
直播中

崔丹

7年用户 178经验值
私信 关注
[问答]

I2C CSL函数库函数调用,请问Uint32 i2cdxrAddr代表什么?

本帖最后由 一只耳朵怪 于 2018-6-25 14:30 编辑

/* device handle object */
typedef struct [
  Uint32 allocated;
  Uint32 eventid;
  volatile Uint32 *baseAddr;
  Uint32 i2cdrrAddr;
  Uint32 i2cdxrAddr;
] I2C_Obj, *I2C_Handle;
IDEF void I2C_writeByte(I2C_Handle hI2c, Uint8 val) [
  (*(volatile Uint8 *)(hI2c->i2cdxrAddr)) = val;
]
请问Uint32 i2cdxrAddr代表什么?
如果这样调用,
I2C_writeByte(hI2c, 0x55);
那么0x55写到I2C的那个寄存器了?

回帖(6)

李峰

2018-6-25 08:00:00

最佳答案

Uint32 i2cdxrAddr代表寄存器I2CDXR (I2C data transmit register)。
I2C_writeByte(hI2c, 0x55);相当根据你的配置,向Slave Address I2C设备上发出的第一个数据,可以是你将要写的地址,后续继续调用I2C_writeByte,则是把数据写入你前面指定的地址里。
举报

崔丹

2018-6-25 08:15:34
引用: kingnet_52004 发表于 2018-6-25 08:06
Uint32 i2cdxrAddr代表寄存器I2CDXR (I2C data transmit register)。
I2C_writeByte(hI2c, 0x55);相当根据你的配置,向Slave Address I2C设备上发出的第一个数据,可以是你将要写的地址,后续继续调用I2C_writeByte,则是把数据写入你前面指定的地址里。 ...

谢谢了,那是不是
IDEF Uint8 I2C_readByte(I2C_Handle hI2c) [
 return (*(volatile Uint8 *)(hI2c->i2cdrrAddr));
]
Uint32 i2cdrrAddr;      Uint32 i2cdxrAddr;是不是都代表寄存器I2CDXR
举报

崔丹

2018-6-25 08:20:39
引用: kingnet_52004 发表于 2018-6-25 08:06
Uint32 i2cdxrAddr代表寄存器I2CDXR (I2C data transmit register)。
I2C_writeByte(hI2c, 0x55);相当根据你的配置,向Slave Address I2C设备上发出的第一个数据,可以是你将要写的地址,后续继续调用I2C_writeByte,则是把数据写入你前面指定的地址里。 ...

谢谢了,那是不是
IDEF Uint8 I2C_readByte(I2C_Handle hI2c) [
 return (*(volatile Uint8 *)(hI2c->i2cdrrAddr));
]
Uint32 i2cdrrAddr;      Uint32 i2cdxrAddr;是不是都代表寄存器I2CDXR
举报

崔丹

2018-6-25 08:36:30
引用: kingnet_52004 发表于 2018-6-25 08:06
Uint32 i2cdxrAddr代表寄存器I2CDXR (I2C data transmit register)。
I2C_writeByte(hI2c, 0x55);相当根据你的配置,向Slave Address I2C设备上发出的第一个数据,可以是你将要写的地址,后续继续调用I2C_writeByte,则是把数据写入你前面指定的地址里。 ...

谢谢了,那是不是
IDEF Uint8 I2C_readByte(I2C_Handle hI2c) [
 return (*(volatile Uint8 *)(hI2c->i2cdrrAddr));
]
Uint32 i2cdrrAddr;      Uint32 i2cdxrAddr;是不是都代表寄存器I2CDXR
举报

更多回帖

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