能在低功耗模式下使用CC2540的串口吗
大家好,
我现在需要用到CC2540的串口跟别的MCU通信,不是透传,只是偶尔才接收一个MCU发过来的数据,但在网上找到的资料都要不能定义POWER_SAVING才能工作,但这样电流会很大。
我在TI网站上下载的例程http://processors.wiki.ti.com/index.php/SimpleBLEPeripheral_SerialInterface,也不能直接接收到,要把POWER_SAVING给注释掉才行。
有没有方法在低功耗的模式下使用串口呢?
是可以的,在串口通信,打个POWER_SAVING.如有可联系QQ 854476801.请注明
Eric,
串口通信不能在低功耗模式下使用,因为需要晶振的支持。
你可以尝试用osal_pwrmgr_device( PWRMGR_ALWAYS_ON ); 和 osal_pwrmgr_device(PWRMGR_BATTERY);当需要UART通信的时候,这两个切换。
但不建议你这么做,一定要小心,因为功耗控制是由系统自动实现的,这么加有可能会造成紊乱。
Yan,
谢谢,我还想问一下,如果是串口要主动地发送数据,就可以使用这两种方式切换,但如果是被动地等待接收数据,就只能用osal_pwrmgr_device( PWRMGR_ALWAYS_ON )模式了,才能收到数据,我的理解对吗?
eric,
可以这么理解。
如果你主动发送数据,往往会有定时任务或者IO任务,会唤醒系统。如果光是等待,很有可能进入PM3,关闭所有晶振。
我也想问个问题,如果定义POWER_SAVING,能否使用SPI通信呢?
不能,SPI同样需要晶振
你好,请问PM1 PM2 PM3这三个状态是自动切换的吗?
不是,需要程序中设置power mode
如果没有设置POWER_SAVING呢?还有如何进入pm3模式