为什么我的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通信没结束就进入低功耗了,导致每次都没有通信完成,等待一下就好了。。。