CC2541低功耗模式下,串口怎样动态开关并且不影响功耗?
时间:10-02
整理:3721RD
点击:
现在在做cc2541的低功耗,偶尔需要使用串口发送一些数据。当POWER_SAVING和HAL_UART=TRUE均使能的情况下,功耗一直8ma左右,怎么样才能在需要使用串口的时候打开串口,使用完毕后关闭串口,以降低功耗?
power saving模式下会关闭晶振,也就无法使用串口。而且看你的功耗,根本没有进入LPM。建议唤醒以后操作串口,用完后再进行休眠
可以使用一个io口中断唤醒
这样在低功耗模式可以保证串口数据不乱码或者丢失!
把hal_uart_dma.c里面,有关RTS和CTS的所有代码注释掉,这样就能在POWER_SAVING的情况下仍然可以使用串口发送,不需要hold住电源,但是只能发送,并不能接收。
就是没法进入LPM只要把HAL_UART=FALSE,就可以正常进入,我现在的问题是没法实现在串口初始化以后,没有使用写和读的时候使他它的功耗降下来?
已经告诉你方法了
Dear murongfu:
按您说的全部屏蔽后,它的功耗还是8毫安,怎么才能让它的功耗降下去。
UxUCR = UCR_STOP|UCR_FLOW;
改为
UxUCR = UCR_STOP;
其它的RTS、CTS、P0_4、P0_5,BV(4)、BV(5),只要是跟P0.4和P0.5有关的设置,仔细搜索,一个个注释。
Dear murongfu:
还是不行功耗还是没有降下去,而且我也需要用串口接收数据,是不是因为串口初始化后,系统会强制进入活跃模式,进入不了睡眠模式?
楼上网友提出的办法是
- UART (with power management): using CTS/RTS handshaking to control sleep. 具体你可以看下这边: http://processors.wiki.ti.com/index.php/SerialBLEbridge_V_1.4.1