只开启Uart的发送功能,上电+入网后的电流在30uA左右。
开启Uart发送&接收功能,上电+入网后的电流在4.5mA左右。
以此判断,在开启Uart接收功能后,板子没进入低功耗模式。
我坐过一个测试,在使能接收功能的情况下初始化Uart,然后过2分钟后在关闭Uart(使用UART_close()函数),板子依然是4.5mA的电流,等了一段时间也没劲低功耗。
问:如何配置串口才能即可接收数据(Uart),也能进入低功耗?可以接受开启一段时间在把串口关闭
开始串口初始化函数:
void Board_Uart_Init(void)
{
UART_init(); //初始化模块的串口功能
UART_Params_init(&UARTparams); //初始化串口参数
UARTparams.baudRate = 115200; //串口波特率115200
UARTparams.dataLength = UART_LEN_8; //串口数据位8
UARTparams.stopBits = UART_STOP_ONE; //串口停止位1
UARTparams.readDataMode = UART_DATA_BINARY; //串口接收数据不做处理
UARTparams.writeDataMode = UART_DATA_BINARY; //串口发送数据不做处理
UARTparams.readEcho = UART_ECHO_OFF; //串口不回显
if (true == Uart_RxEnable)
{
UARTparams.readTimeout = 5000;
UARTparams.readMode = UART_MODE_CALLBACK; //串口异步读
UARTparams.readReturnMode = UART_RETURN_NEWLINE; //当接收到换行符时,回调
UARTparams.readCallback = Uart_ReadCallback; //串口读回调
}
//UARTparams.writeMode = UART_MODE_CALLBACK; //串口异步写
//UARTparams.writeCallback = Uart_WriteCallback; //串口写回调
UARTHandle = UART_open(Board_UART0, &UARTparams); //打开串口通道
if (true == Uart_RxEnable)
{
UART_control(UARTHandle, UARTCC26XX_RETURN_PARTIAL_ENABLE, NULL); //允许接收部分回调
Uart_RxBufIndex = 0;
UART_read(UARTHandle, Uart_RxTempBuf, sizeof(Uart_RxTempBuf)); //打开一个串口读
}
UART_write(UARTHandle, "SquatPit\r\n", 10);
}
YiKai Chen:
檢查看看你程序有沒有busy loop讓cc2630不进入低功耗模式
Alvin Chen:
请参考下面的
processors.wiki.ti.com/…/NPI_Two_Wire_UART_with_PM
Viki Shi:
预编译 NPI_USE_UART没?
tt wang:
回复 Viki Shi:
没有,不使用NPI色温相关功能
da qin zheng sheng:
编译参数选择powersaving芯片可以进入低功耗模式
da qin zheng sheng:
回复 da qin zheng sheng:
低功耗的时候串口不能使用的,芯片需要唤醒