TI论坛
直播中

李继明

7年用户 1098经验值
私信 关注
[问答]

cc2541 i2c一直没有返回

Hello,
     cc2541的i2c配置为master模式与从器件通讯。定时从器件中读取数据。i2c程序会出现运行到i2cMstStrt()函数的
              while ((I2CCFG & I2C_SI) == 0);
     这句代码时一直没有返回。
    i2c的配置与初始化都是使用BLE-CC254x-1.3里面的代码。请问如何解决。
    谢谢。
roy

回帖(6)

庄当甜

2020-3-13 09:11:07
试一下这个帖子里的示例代码   http://e2e.ti.com/support/low_power_rf/f/538/t/172539.aspx
举报

李继明

2020-3-13 09:30:43
引用: 小Qhhui 发表于 2020-3-13 10:02
试一下这个帖子里的示例代码   http://e2e.ti.com/support/low_power_rf/f/538/t/172539.aspx

Hi Susan,
    连接里面的代码应该是多了作为slave模式的数据读写,而master模式的代码并没多少改变。
    其实在while循环哪里没有返回,会是什么原因造成呢?总线的start信号应该不需要slave的响应的,为什么I2C_SI这个标志位不改变呢?是不是i2c的中断被关闭了?
     谢谢。
roy
举报

贾大林

2020-3-13 09:49:15
这个问题我也遇到过,解决方法和你的一样,后来发现手册上是这样写的:
The I2C configuration and state is not retained in power modes PM2 and PM3. It must be reconfigured after coming out of sleep mode
举报

张舒婷

2020-3-13 09:54:26
没错,就是这个问题,把宏定义POWER_SAVING注释掉,就可以正常运行,可见是进入睡眠的问题
举报

更多回帖

发帖
×
20
完善资料,
赚取积分