找回密码
 立即注册
楼主: 丽江***

想用STC32g12k128显示实时时钟,求教

[复制链接]

该用户从未签到

640

主题

1万

回帖

1万

积分

管理员

积分
15687
发表于 2023-1-15 21:41:25 | 显示全部楼层
认真学习下 STC32G12K128 实验箱 RTC的程序
1.png
第81个演示程序,是 RTC 的演示程序
2.png

该用户从未签到

640

主题

1万

回帖

1万

积分

管理员

积分
15687
发表于 2023-1-15 21:45:29 | 显示全部楼层
RTC程序中选择的是外部32768时钟振荡器起振,你如外部挂的是 11.0592MHz, 那晶振起振出问题正常
1.png

1.png
选错了,或 焊错了,不起振,是正常的
低频是低频的起振电路,高频是高频的起振电路,这是科学,不是玄学


根据你的描述,你想外部 32768晶振,结果你焊成了11M的晶振,你认真排查下

  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    88

    回帖

    645

    积分

    高级会员

    积分
    645
     楼主| 发表于 2023-1-16 15:41:25 | 显示全部楼层
    这个倒不是,我原来的计划是外接11M晶振,提高测量频率的精度,弄个内部RTC时钟,再接个GPS校时模块,对时钟进行定期校准,现在看来RTC内部时钟源是为唤醒MCU准备的,不适合当做时钟用。我基本明白问题在哪了,我用核心板接外时钟,本身晶振到芯片的线路就比较长了,再加个插座,用洞洞板实现。这个距离不合理。所以不能起振。等年后买个裸芯片试试,或者有希望。(困为实验还想用洞洞板,所以到时不能起振也是可能的。)

    该用户从未签到

    640

    主题

    1万

    回帖

    1万

    积分

    管理员

    积分
    15687
    发表于 2023-1-16 15:58:23 | 显示全部楼层
    实验还想用洞洞板===STC32G12K128, STC8H8K64U 都有PDIP40



  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    88

    回帖

    645

    积分

    高级会员

    积分
    645
     楼主| 发表于 2023-1-16 19:10:52 | 显示全部楼层
    现在店家不发货了。要等年后才能拿到芯片。安心过年了。
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    88

    回帖

    645

    积分

    高级会员

    积分
    645
     楼主| 发表于 2023-1-18 11:47:04 | 显示全部楼层
    开启内部RTC多次都没成功,感觉没道理,于是查找自己的问题,我用了两个不同的板子,一个是DIP40自己接的系统,一个是降龙棍核心板。共同点在于都使用了硬件SPI串口屏。于是我又做了一个板,使用并口屏。结果把数据手册上的例程复制过来。就成功开启了内部RTC时钟。前面的失败不知是不是因为硬件SPI与RTC时钟源有冲突的地方。请其它朋友们有机会验证一下吧,我累了。不弄这个了。

    该用户从未签到

    640

    主题

    1万

    回帖

    1万

    积分

    管理员

    积分
    15687
    发表于 2023-1-18 11:49:45 | 显示全部楼层
    结果把数据手册上的例程复制过来。就成功开启了内部RTC时钟
    ====程序对了,RTC时钟就成功启动了,贡献,进步 !!!
    ====几十万人看的数据手册,还是比较专业的
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    88

    回帖

    645

    积分

    高级会员

    积分
    645
     楼主| 发表于 2023-1-18 13:24:44 | 显示全部楼层
    想起来一个事,数据手册上有个小失误
    RTCCFG |= 0x01; //触发 RTC 寄存器初始化
    while(RTCCFG & 0x01); //等待初始化完成,需要在 "RTC 使能" 之后判断.
    上面的语句明明写的是要在RTC使能后进行判断,但位置却在使能之前,当然这不是大事,懂的朋友改过来就行了。

    该用户从未签到

    640

    主题

    1万

    回帖

    1万

    积分

    管理员

    积分
    15687
    发表于 2023-1-18 13:31:09 | 显示全部楼层
    丽江春水 发表于 2023-1-18 13:24
    想起来一个事,数据手册上有个小失误
    RTCCFG |= 0x01; //触发 RTC 寄存器初始化
    while(RTCCFG & 0x01); / ...

    1.png
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    88

    回帖

    645

    积分

    高级会员

    积分
    645
     楼主| 发表于 2023-1-20 18:25:18 | 显示全部楼层
    本帖最后由 丽江春水 于 2023-1-20 21:20 编辑

    开启内部RTC时钟和使用外部晶振都成功了,之前不行的原因在于自己的程序有问题,开始以为是硬件SPI冲突,结果换成软件模拟SPI,还是不行,最后把程序全删掉,用别的能开RTC时钟的程序复制过来,改造成自己需要的程序。结果内部时钟打开了。外晶振也开了,至于自己的程序到底哪里有错,还是没找到。可能程序行了,但用STC-USB Link1D仿真时,由于不会玩,所以把自己搞糊涂了。新人之路曲折。
    外部32K时钟也打开了。所谓一通百通,程序都正常用了,只是还是不知道当初的错在哪里,可能只是没学会stc-usb link1d就急着去用,结果迷路了,现在玩的比较熟悉,感觉方便很多。谢谢各位老师的指导。
    clock.jpg
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-11-1 07:06 , Processed in 0.090492 second(s), 71 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表