CC2541 I2C使用问题
最近在做I2C相关项目,遇到如下问题,还请高手们帮帮忙哈,非常感谢。
我的硬件环境是谷雨公司的开发板。
问题如下:
驱动hal_i2c文件中执行完I2C_WRITE(i2cAddr | RD_WRn);后,I2CDATA寄存器没有变化还是0,这之前的其他寄存器(I2CCFG,I2CSTAT)都状态正常,请问这是什么问题。
后面我直接跑TI公司的SensorTag这个demo,问题一样。
我在这儿先谢谢大家了哈。
下面是I2C_WRITE宏定义。
#define I2C_WRITE(_X_) st ( \
I2CDATA = (_X_); \
I2CCFG &= ~I2C_SI; \
while ((I2CCFG & I2C_SI) == 0); \
)
lin,
I2C的clock有输出吗?
你好,非常感谢你的帮助,被这个问题困扰很久了,我的qq:312038441,可以的话加q详聊嘛,谢谢。
由于目前我们的工具还没采购回来,所以无法实际测量。
运行到I2CDATA赋值前的相关寄存器值如下,可以参考:
SLEEPSTA = 0x4C
SLEEPCMD = 0x04
CLKCONSTA = 0x00
CLKCONCMD = 0x00
PCON = 0x00
CLD = 0x00
我也一直怀疑是时钟、睡眠、电源模式引起的,
被这个问题困扰好久了,项目进度都一拖再拖了,求大神指点,感激不尽
我是没有连任何外部设备,直接将两个开发板连在I2C总线上,一个收一个发。
刚开始自己结合你们的驱动写程序,调试主片的时候发现I2CDATA赋值有问题。
之后拿SensorTag这个程序来试(没接任何外围设备,直接调试),问题也是出在I2CDATA这个地方。