TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2650 i2c接口操作EEPROM AT24C16问题

大家用过cc2650通过硬件i2c接口操作AT24C16吗? 读写不成功,看波形发现随机读时发送完写地址,不发送读数据。

看驱动库I2CCC26XX.c里函数I2CCC26XX_primeTransfer代码感觉有问题,这个硬件i2c大家使用时有啥问题没啊?大家都说说,谢谢!!!

Viki Shi:

可以具体讲一下用I2CCC26XX_primeTransfer时遇到什么问题吗?

user4977756:

回复 Viki Shi:

AT24C16随机读操作,需要先写地址,在读数据,即包含了写和读两个动作。
I2C_Transaction结构体中同时设置writeBuf和readBuf,希望I2C_transfer函数中先写后读。
查看I2C_transfer中调用I2CCC26XX_primeTransfer函数,I2CCC26XX_primeTransfer中if (object->writeCountIdx)判断是写进行写操作,else分支进行读操作,就是说写和读不能在一次调用中先后执行 。
通过抓波形发现确实只有写操作,没有读。我把else分支改为if (object->readCountIdx)判断,波形只有读操作,没有写。
是我的调用方法有问题吗?还是I2C_transfer一次调用不能先写后读两种操作,需要两次调用?

Susan Yang:

您可以看一下  的代码

user4977756:

回复 Susan Yang:

嗯,调用函数bool BoardI2C_writeRead(uint8_t *wdata, uint8_t wlen, uint8_t *rdata, uint8_t rlen),在I2CCC26XX_transfer中等待信号处停住了,和我之前调试的现象一样。I2C_transfer函数支持这种先后读写的需求是吧?

da qin zheng sheng:

首先确保i2c读写访问地址正确,另外也可以使用io模拟i2c通信。

da qin zheng sheng:

首先确保i2c读写访问地址正确,另外也可以使用io模拟i2c通信。

赞(0)
未经允许不得转载:TI中文支持网 » CC2650 i2c接口操作EEPROM AT24C16问题
分享到: 更多 (0)