2424* PM_SLEEP_MODE_STANDBY | 掉电模式1或2(可配,默认配置是模式1)
2525* PM_SLEEP_MODE_SHUTDOWN | 掉电模式3或4(可配,默认配置是模式3)
2626*
27- * 操作步骤 :
27+ * 操作步骤1 :
2828* 1)按下按键K10: MCU进入休眠模式
2929* 2)再按下按键K10:MCU退出休眠模式
3030* 3)重复上述按键操作,MCU循环进入休眠模式(deep、standby、shutdown、idle)和退出对应的休眠模式。
3131* 每次进入休眠模式前,MCU打印 "sleep:" + 休眠模式名称
3232* 每次退出休眠模式后,MCU打印 "wake from sleep:" + 休眠模式名称
33+ * 操作步骤2:
34+ * 1)支持运行模式切换的芯片循环切换 低速->高速->低速 运行模式,对应时钟输出口输出对应模式下的时钟信号
3335*/
3436
3537#include <rtthread.h>
3638#include <rtdevice.h>
3739#include <board.h>
3840#include <drivers/lptimer.h>
3941
40-
4142#if defined(BSP_USING_PM )
4243
43- #define EFM_ERASE_TIME_MAX_IN_MILLISECOND (20)
44-
4544#if defined (HC32F4A0 )
4645 #define PLL_SRC ((CM_CMU->PLLHCFGR & CMU_PLLHCFGR_PLLSRC) >> CMU_PLLHCFGR_PLLSRC_POS)
4746 #define BSP_KEY_PORT (GPIO_PORT_A) /* Key10 */
101100 #define BSP_KEY_EVT (EVT_SRC_PORT_EIRQ5)
102101 #define BSP_KEY_PWC_PD_WKUP_TRIG_WKUP (PWC_PD_WKUP_TRIG_WKUP1)
103102 #define BSP_KEY_PWC_PD_WKUP_WKUP (PWC_PD_WKUP_WKUP11)
104-
105- #define MCO_PORT (GPIO_PORT_A)
106- #define MCO_PIN (GPIO_PIN_08)
107- #define MCO_GPIO_FUNC (GPIO_FUNC_1)
108103#endif
109104
110105#define KEYCNT_BACKUP_ADDR (uint32_t *)(0x200F0010)
@@ -327,6 +322,7 @@ static void pm_cmd_handler(void *parameter)
327322 }
328323}
329324
325+ #if defined(HC32F4A0 ) || defined(HC32F460 ) || defined(HC32F448 )
330326static void pm_run_main (void * parameter )
331327{
332328 static rt_uint8_t run_index = 0 ;
@@ -354,6 +350,7 @@ static void pm_run_main(void *parameter)
354350 rt_thread_mdelay (3000 );
355351 }
356352}
353+ #endif
357354
358355static void _keycnt_cmd_init_after_power_on (void )
359356{
@@ -440,6 +437,7 @@ int pm_sample_init(void)
440437 rt_kprintf ("create pm sample thread failed!\n" );
441438 }
442439
440+ #if defined(HC32F4A0 ) || defined(HC32F460 ) || defined(HC32F448 )
443441 thread = rt_thread_create ("pm_run_main" , pm_run_main , RT_NULL , 1024 , 25 , 10 );
444442 if (thread != RT_NULL )
445443 {
@@ -449,6 +447,8 @@ int pm_sample_init(void)
449447 {
450448 rt_kprintf ("create pm run thread failed!\n" );
451449 }
450+ #endif
451+
452452 return RT_EOK ;
453453}
454454MSH_CMD_EXPORT (pm_sample_init , pm sample init );
0 commit comments