This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2630使能Uart接收功能不进低功耗?

Other Parts Discussed in Thread: CC2630

只开启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);
}