angmall 发表于 2024-7-14 08:40:03

zl286 发表于 2024-2-22 10:50
我用DS3231模块的32k引脚的信号进入P1.7脚,一个是STC8H的芯片,另一个是STC32G12K128的芯片,在STC8H的 ...

在你的项目中,使用DS3231的32kHz信号作为时钟源进行计时,其中STC8H芯片的RTC计时与DS3231完全同步,而STC32G12K128芯片在第30分钟误差5秒。这个现象可能由多种原因导致。以下是一些可能的原因和排查方法:

### 可能原因

1. **时钟配置不当**
   - 确保STC32G12K128芯片正确配置了32kHz外部时钟源。
   - 检查时钟源的稳定性和配置,确保没有抖动或误差。

2. **计时器配置错误**
   - 检查STC32G12K128芯片上的计时器配置,确保其正确配置为使用32kHz外部时钟。
   - 确保计时器的预分频器、计数器和中断设置正确。

3. **代码实现问题**
   - 检查代码实现,确保使用正确的方法读取和处理RTC数据。
   - 检查中断服务程序的实现,确保没有延迟或遗漏。

4. **硬件问题**
   - 确保STC32G12K128芯片的P1.7引脚连接稳定,没有干扰。
   - 检查焊接和连接,确保硬件连接无误。

5. **电源问题**
   - 确保电源稳定,避免电源波动导致时钟误差。

### 排查方法

1. **时钟配置检查**
   - 查看STC32G12K128芯片的配置寄存器,确保外部32kHz时钟源配置正确。
   - 使用示波器检查P1.7引脚上的32kHz信号,确保信号稳定且频率准确。

2. **计时器配置检查**
   - 仔细检查计时器的配置代码,确保所有参数设置正确。
   - 测试不同的预分频器和计数器设置,确保计时准确。

3. **代码调试**
   - 添加调试信息,检查RTC读取和处理过程,确保没有错误。
   - 通过调试器逐步执行代码,检查计时器中断和处理过程。

4. **硬件检查**
   - 重新检查硬件连接和焊接,确保P1.7引脚连接牢固。
   - 尝试使用其他引脚进行连接,排除引脚本身问题。

5. **电源检查**
   - 使用示波器检查电源稳定性,确保没有干扰和波动。
   - 使用稳压电源供电,排除电源不稳导致的时钟误差。


通过以上方法,你可以逐步排查并解决STC32G12K128芯片上的RTC计时误差问题。如果问题依然存在,请提供更多详细信息,以便进一步分析和帮助。




men007 发表于 2024-7-28 06:29:43

非常实用!{:lol:}

whoyzf 发表于 2024-8-28 17:06:09

支持掉电唤醒 应该怎么理解呢? 进入掉电模式后,RTC正常工作吗?可用RTC支持的中断来唤醒单片机吗?

神农鼎 发表于 2024-8-28 18:24:35

主时钟停振的省电模式,RTC实时时钟可以用外部32768低频晶振工作,
RTC实时时钟可以产生中断唤醒 MCU

hande5 发表于 2024-11-4 10:43:30

{:4_165:}
页: 1 [2]
查看完整版本: 视频讲解:RTC 实时时钟,年月日时分秒,STC8H数据手册 RTC 内容