session 发表于 2025-6-9 15:46:01

8H8K64U RTC中断问题 | 已解决

8H8K64U,RTC中断可以唤醒IDLE模式吗?
现在程序中正常秒中断可以执行,
但是一旦进入idle后就不进去了,这个正常吗?

芯片是D版本的

session 发表于 2025-6-9 16:07:56

国芯人工智能 发表于 2025-6-9 16:03
在Intel的STM32系列单片机芯片中,RTC中断模块(如RTC84U或 RTC864U)负责检测并检测到 RTC(如LED的反向或 ...

我只想用RTC中断唤醒IDLE模式,但是发现进入idle模式后rtc中断一直不进去,这个可以解决吗?

session 发表于 2025-6-9 16:14:13

补充下,用的是内部32K时钟

ercircle 发表于 2025-6-9 16:55:05

session 发表于 2025-6-9 16:14
补充下,用的是内部32K时钟

使用例程测试的吗?
手册里例程是用外部 32K 晶振




session 发表于 2025-6-9 16:59:06

ercircle 发表于 2025-6-9 16:55
使用例程测试的吗?
手册里例程是用外部 32K 晶振

是历程,但是我选择的是内部32K,需要的功能是唤醒IDLE就行

// STC8H8K64U B版本芯片使用内部32K时钟,休眠无法唤醒
        // 内部时钟误差较大,精度要求高的需要使用外部晶振
    IRC32KCR = 0x80;   //启动内部32K晶振.
    while (!(IRC32KCR & 1));//等待时钟稳定
    RTCCFG = 0x03;    //选择内部32K时钟源,触发RTC寄存器初始化

    // X32KCR = 0x80 + 0x40;   //启动外部32K晶振, 低增益+0x00, 高增益+0x40.
    // while (!(X32KCR & 1));//等待时钟稳定
    // RTCCFG = 0x01;    //选择外部32K时钟源,触发RTC寄存器初始化

    RTCIF = 0x00;   //清中断标志
    RTCIEN = 0x08;    //中断使能, 0x80:闹钟中断, 0x40:日中断, 0x20:小时中断, 0x10:分钟中断, 0x08:秒中断, 0x04:1/2秒中断, 0x02:1/8秒中断, 0x01:1/32秒中断
    RTCCR = 0x01;   //RTC使能

    while(RTCCFG & 0x01);        //等待初始化完成,需要在 "RTC使能" 之后判断.
    //设置RTC时间需要32768Hz的1个周期时间,大约30.5us. 由于同步, 所以实际等待时间是0~30.5us.
    //如果不等待设置完成就睡眠, 则RTC会由于设置没完成, 停止计数, 唤醒后才继续完成设置并继续计数.

ercircle 发表于 2025-6-9 17:07:43


我在开天斧开发板上切换内部32K,测试可以唤醒:






session 发表于 2025-6-9 17:12:49

ercircle 发表于 2025-6-9 17:07
我在开天斧开发板上切换内部32K,测试可以唤醒:

开山斧开发板是什么单片机?STC8H8K64UD版本?

ercircle 发表于 2025-6-9 17:14:33

session 发表于 2025-6-9 17:12
开山斧开发板是什么单片机?STC8H8K64UD版本?


官网的开发板,可以论坛积分兑换也可以小程序购买。

我看也是D版本

session 发表于 2025-6-9 21:54:07

ercircle 发表于 2025-6-9 17:14
官网的开发板,可以论坛积分兑换也可以小程序购买。

我看也是D版本


感谢帮助,已解决
页: [1]
查看完整版本: 8H8K64U RTC中断问题 | 已解决