请教如何运用低功耗管理



  • 问题1:系统重启后能进入低功耗,电流为 20uA左右
    过上20s左右,系统会退出低功耗,电流为 3mA左右,再也进入不了低功耗?
    问题2:如果让BLE进入广播模式,系统无法进入低功耗模式,使用原始的广播配置,这个时候无法进入低功耗,电流一直在3mA左右?
    我想做个定时广播,广播完没有任何操作进入睡眠模式,还有就是进入睡眠模式广播怎样唤醒它



  • 同问,我也要用到这个功能



  • 同问,这个低功耗如何操作,加开始或者结束低功耗函数里加打印系统还没有广播了。。。



  • attribute((section("ram_code"))) void user_entry_before_sleep_imp(void)
    {
    uart_putc_noint_no_wait(UART1, 's');
    }
    attribute((section("ram_code"))) void user_entry_after_sleep_imp(void)
    {
    /* set PA2 and PA3 for AT command interface */

    system_set_port_mux(GPIO_PORT_A, GPIO_BIT_3, PORTA3_FUNC_UART1_TXD);
    

    // system_sleep_disable();

    if(__jump_table.system_option & SYSTEM_OPTION_ENABLE_HCI_MODE)
    {
        system_set_port_pull(GPIO_PA4, true);
        system_set_port_mux(GPIO_PORT_A, GPIO_BIT_4, PORTA4_FUNC_UART0_RXD);
        system_set_port_mux(GPIO_PORT_A, GPIO_BIT_5, PORTA5_FUNC_UART0_TXD);
        uart_init(UART0, BAUD_RATE_115200);
        NVIC_EnableIRQ(UART0_IRQn);
    
        system_sleep_disable();
    }
    
    uart_init(UART1, BAUD_RATE_115200);
    NVIC_EnableIRQ(UART1_IRQn);
    //uart_putc_noint_no_wait(UART1, 'w');
    
    // Do some things here, can be uart print
    
    NVIC_EnableIRQ(PMU_IRQn);
    

    }



  • @鱼的记忆请教如何运用低功耗管理 中说:

    系统重启后能进入低功耗,电流为 20uA左右
    过上20s左右,系统会退出低功耗,电流为 3mA左右,再也进入不了低功耗?
    问题2:如果让BLE进入广播模式,系统无法进入低功耗模式,使用原始的广播配置,这个时候无法进入低功耗,电流一直在3mA左右?
    我想做个定时广播,广播完没有任何操作进入睡眠模式,还有就是进入睡眠模式广播怎样唤醒它

    正常程序中没有调用system_sleep_disable();的话 默认系统会自动进入sleep;
    可以通过os_timer唤醒