在测试过程中,发现在这个位置加个延时才能通讯成功,不加就失败,这是怎么回事?
i2cTransaction.slaveAddress = 0x50;i2cTransaction.writeBuf = NULL;i2cTransaction.writeCount = 0;i2cTransaction.readBuf = rxBuffer;i2cTransaction.readCount = 100;/* Take 20 samples and print them out onto the console */Task_sleep(100);if (I2C_transfer(i2c, &i2cTransaction)) {Display_printf(display, 0, 0, "success");}else {Display_printf(display, 0, 0, "I2C Bus fault\n");}
Viki Shi:
可以看下这边alvin分享的I2C例程: e2echina.ti.com/…/424720
user4959119:
回复 Viki Shi:
看过了,不能解决我这个问题哦,麻烦给分析一下。。
Alvin Chen:
回复 user4959119:
你这样写没什么问题,不用加演示,你有用逻辑分析仪看过波形吗?
software-dl.ti.com/…/_i2_c_8h.html
user4959119:
回复 Alvin Chen:
按说是的哦,还没有看波形,有空会看一下。
user4959119:
回复 Alvin Chen:
它的I2C读+写方式目的是什么没看懂?说适合什么有指针寄存器的操作,能实现我下面的这个时序吗?