复旦微MCU FM33A0XX 自己写的RTC例程

最近在操作复旦微的CORTEX-M0 FM33A048的时候,需要用外部32K时钟,实现时中断使能,闹钟中断使能,秒中断等其他中断禁止。但调试中遇到每秒都会产生秒中断,无法禁止。经过调试发现,RTC初始化函数没什么问题,问题应该出在RTC服务函数的处理上,中断的产生首先是总中断要打开,然后相应的中断要开启,第三要中断标志位要置起,当有多个中断源使用同一个中断入口的时候,只用if(SET == RTC_RTCIF_ChkEx(RTC_RTCIE_SEC_IE_Msk))这么判断秒中断标志位是不准确的,这个条件成立了,但是不一定是这个中断;
附件的例程实现了初始时间是01时59分55秒,到02时0分0秒的时候会产生时中断,到2时0分5秒的时候会产生闹钟中断;另外如果遇到第一次秒中断,后面就没了,需要检查下RTC初始化的时候是否先开了所以中断,再关掉所有中断,其实完全不用先开,直接关掉所有中断,后面需要用到什么中断再开什么中断就可以了,否则会出现第一次会进去中断的情况~
以上调试心得分享给大家,希望可以帮助有同样问题的贴友!这里写链接内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值