GD32E230休眠唤醒后不能再次进入休眠

文章讲述了在GD32E230C8T6微控制器中使用RTC进行休眠时遇到的问题,首次休眠正常,再次时失败。问题在于独立看门狗喂狗后需增加时钟周期延时,否则导致复位。通过添加延时解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 使用GD32E230C8T6测试休眠功能,发现第一次进入休眠正常,在次进入休眠就会失败,测试代码如下:

int main(void)
{
    /* nvic configuration */
    nvic_configuration();
    /* LED configuration */
    led_config();
    /* systick configuration */
    systick_config();
    gd_eval_led_on(LED4);
    delay_1ms(2000U);
    gd_eval_led_off(LED4);
    /* RTC configuration */
    rtc_configuration();
    /* FWDGT configuration */
    fwdgt_configuration();

    while(1){
        /* PMU enters deepsleep mode */
			    if(rtc_wake_up_flag)
				{
					rtc_wake_up_flag = 0;
                    gd_eval_led_toggle(LED2);
					pmu_to_deepsleepmode(PMU_LDO_LOWPOWER, WFI_CMD);
				}
                
    }
}

通过RTC定时进入休眠

void RTC_IRQHandler(void)
{
    if(RESET != rtc_flag_get(RTC_FLAG_ALARM0)){
        /* clear the RTC alarm and EXTI_17 interrupt flags */
        rtc_flag_clear(RTC_FLAG_ALARM0);
        exti_flag_clear(EXTI_17);
        /* configure RTC alarm time */
        rtc_alarm_time_configuration();
        /* feed dog */
        fwdgt_counter_reload();
			
		rtc_wake_up_flag = 1;
				
    } 
}

调试发现就第一次正常进入,后面LED2就不会闪烁了,而且会触发重启。

然后翻看用户手册发现,因为使用了独立看门狗,在喂狗后,需要增加3个以上时钟周期延时,不然会导致喂狗失败,引发复位。

 按手册介绍,增加延时后测试正常,代码如下:

while(1){
        /* PMU enters deepsleep mode */
				if(rtc_wake_up_flag)
					{
						rtc_wake_up_flag = 0;
						gd_eval_led_toggle(LED2);
						delay_1ms(1);// -----进入休眠前增加一点延时-----//
						pmu_to_deepsleepmode(PMU_LDO_LOWPOWER, WFI_CMD);
					}
    }

gd32e230f8p6是一款高性能的微控制器,具有较强的处理能力和丰富的外设接口。以下是对gd32e230f8p6手册的回答。 gd32e230f8p6手册提供了详细的技术规格和使用指南,帮助开发人员了解并正确使用这款微控制器。手册涵盖了硬件方面的信息,包括芯片引脚分配、外部时钟和电源管理等内容。此外,手册还提供了软件开发相关的内容,包括寄存器描述、外设驱动库说明和示例代码等。 手册的第一部分是关于芯片概述和主要特性的介绍,让用户了解gd32e230f8p6的基本功能和性能。接下来,手册详细介绍了芯片的引脚功能和引脚分配图,帮助用户正确连接外部设备和电路。 手册的第三部分是关于中央处理单元(CPU)的说明,包括指令集、寄存器和内存管理单元等方面的信息。用户可以根据手册了解到gd32e230f8p6的处理能力和指令集特性,从而优化代码的编写。 在手册的后续章节中,详细介绍了gd32e230f8p6支持的外设接口,包括通用串行总线接口(SPI)、通用异步收发器(UART)、通用输入/输出(GPIO)等。这些外设接口提供了丰富的功能,用户可以根据需要配置和使用。 另外,手册还提供了gd32e230f8p6的电源管理功能、时钟控制、以及连续模式和休眠模式等节能特性的说明。这些内容有助于用户优化系统的功耗和性能。 总之,gd32e230f8p6手册是一份详尽的技术参考资料,为开发人员提供了全面的信息来了解和使用这款微控制器。通过手册的指引,用户可以更好地利用gd32e230f8p6的功能和性能,开发出高质量的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值