铩羽于小小IIC,求救无门。

这几天调试IIC从机,官方的资料倒是全,但仅仅是全而已了,很多关键没提及,成功还好了,不成功那就不知道怎么办了。
我以蓝牙模块作为从机,其它单片机作为主机。保证主机IIC格式的正确情况下。以IIC标准格式给蓝牙模块发送了数据:
比如 S + SLAVEADDR/wr +S_ACK +DATA+S_ACK+P 但是蓝牙模块IIC从机只响应了 SLAVEADDR/wr(从机地址),也就是红色部分响应了一次应答,后面数据收发都失败了。例子照搬Driver 例子里面的I2C,多次检查,没发现那里没配置的。而我主机端跟别的IIC从器件通信正常(EEPROM芯片)。

跑的是全系统,包括协议栈?如果是请注意睡眠问题,建议在裸驱下调好再加入。

FireBLE_blue 发表于 2015-5-28 09:19
跑的是全系统,包括协议栈?如果是请注意睡眠问题,建议在裸驱下调好再加入。

不是,是driver,不包括协议栈和内核。就是driver example 里面的iic例子。

没摸索过从机的iic

#define I2C_MODE                                       I2C_SLAVE //I2C_MASTER  /*!< Config I2C Mode: Master or Slave */

楼主解决了吗。

lovefirstly 发表于 2015-5-28 23:17
楼主解决了吗。

没解决,代码完全检查了,没发现问题。

你的iic 主机读的时序是怎样?直接用eeprom 程序来调试吗?

FireBLE_blue 发表于 2015-5-29 14:30
你的iic 主机读的时序是怎样?直接用eeprom 程序来调试吗?

S 从机地址 A data A p

EEprom要写从机地址和寄存器地址,我这个不用,只发从机地址,得到应答后就发数据了