我现在遇到这个问题。 把HAL_UART 编译进去后。 耗电7mA 左右。(我把power saving 编译进去了好像也没有用,也是7mA)。 cc2540 是被动接收数据的。 没有给cc240 通过串口发数据的时候, 我想让cc2540 进入省电模式。 然后,当有串口发数据来的时候, 我就要退出省电模式,接收串口数据。
当没有串口数据来的时候 :进入省电模式的代码应该放在哪里? 就调用osal_pwrmgr_device这个函数就行了吗?
当有了串口数据来的时候 : 要怎么退出来? 代码应该怎么写? 要设置中断吗?
这是我的串口接收函数。
void sbpSerialAppCallback(uint8 port, uint8 event)
{
(void)event;
int numBytes=0;
delayMs(30);
uint8 pktBuffer[SBP_UART_RX_BUF_SIZE]={0};
if ((numBytes = Hal_UART_RxBufLen(HAL_UART_PORT_0)) > 0 )
{
(void)HalUARTRead (HAL_UART_PORT_0, pktBuffer, numBytes);
sbpSerialAppWrite(buf,numBytes);
}
}
}
YAN~~~