今天调试Stop模式RTC闹铃事件唤醒功能,发现一个bug:
int main(void)
{
uint32_t n;
DeviceInit(); // 初始化
rtcAlarmAheadSet(500); // 设置RTC闹铃超前值
rtcAlarmEventEnable(); // 使能RTC闹铃事件
for (;;)
{
// 进入停机模式,等待RTC闹铃事件唤醒
sysModeStop(SYS_WAKEUP_EVENT);
// 对GD32F103必须插入一个延时才行,否则LED不会闪烁(STM32F103不需要)
n = 80;
while (--n != 0);
// 重新设定RTC闹铃超前值
rtcAlarmAheadSet(500);
// 反转LED,形成闪烁效果
LedToggle(LED1);
}
}
调试结果:
n值取60以上才行,取60以下LED可能不会闪烁
用GD32F103RBT6、GD32F103VBT6等多颗样片试过,现象都一样,但在STM芯片里没有此现象
当然,不算大问题,只要插入一个足够长的延时(80以上)就能解决掉
|