I2C协议中不管是接收还是发送,第一个动作是发送一个从设备地址加上一个读写标志位(7+1)。
在starterware中,我看到从设备地址是直接写在【I2C_SA】寄存器中,
比如: I2CMasterSlaveAddrSet(SOC_I2C_0_REGS, PMIC_TPS65217_I2C_SLAVE_ADDR);
我看到参考代码中的读操作:
先写地址,在这之前要【I2CMasterControl(SOC_I2C_0_REGS, I2C_CFG_MST_TX);
】,
】,
要读数据时,先【I2CMasterControl(SOC_I2C_0_REGS, I2C_CFG_MST_RX);
】,
】,
然后我的疑问是他是如何按照I2C协议,第一个动作中的7位从设备地址是明确的,但是第八位读写标志位软件并没有告诉他,CPU是如何确定这个读写标志位的?
谢谢
Yaoming Qin:
请问下,您在使用starterware的i2c遇到了什么问题么?具体怎么操作还没细看过
Y tck:
回复 Yaoming Qin:
就是说,我的代码中并没有去区分是读操作还是写操作,按照I2C协议应该是不成功才对,但是事实上可以进行。不知道有没有理解我的意思
Yaoming Qin:
回复 Y tck:
我有点明白你的意思了,不过这个得看看代码,最近实在没空看了,,wiki上关于starterware的i2c的文章能帮到您么:
processors.wiki.ti.com/…/StarterWare_HSI2C
processors.wiki.ti.com/…/StarterWare_I2C
未经允许不得转载:TI中文支持网 » Startterware中的I2C操作困惑