微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 为什么我的I2C在开启POWER SAVING后唤醒之后就不工作了,请问唤醒之后还需要怎么配置吗?

为什么我的I2C在开启POWER SAVING后唤醒之后就不工作了,请问唤醒之后还需要怎么配置吗?

时间:10-02 整理:3721RD 点击:

我的代码

I2C_Inital();
 if ( events & ST_TEMPERATURE_SENSOR_EVT )
  {

       if(I2C_FinishReceiv())
      {
       I2C_Inital();
        
      }   
...
...
...
      osal_start_timerEx( simpleBLEPeripheral_TaskID, ST_TEMPERATURE_SENSOR_EVT, TEMPERATRUE_DEFAULT_PERIOD );
    
    return ( events ^ ST_TEMPERATURE_SENSOR_EVT );
  }

关闭了POWER SAVING之后一切正常,不知道唤醒之后还需要配置什么呢?

yu,

初始化程序里面加这个试试:

HCI_EXT_ClkDivOnHaltCmd(HCI_EXT_DISABLE_CLK_divIDE_ON_HALT);

1、请认真查看TI的芯片手册,上面写的很明白,在PM3模式下,系统会关闭I2C,所配置数据不会保存,所以唤醒以后,要重新配置一下

2、祝你好运,谢谢!

谢谢各位,自己解决了,在事件处理程序最后加了一句

while(!I2C_FinishReceiv());

就好了,原来是I2C通信没结束就进入低功耗了,导致每次都没有通信完成,等待一下就好了。。。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top