OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2936|回复: 3

求助,关于RTC的闹钟中断只能进入2-3次

[复制链接]

24

主题

72

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2018-3-13
在线时间
45 小时
发表于 2019-6-14 10:35:36 | 显示全部楼层 |阅读模式
30金钱
求助各位坛友,最近在实现一个RTC闹钟中断,每10分钟采集一次相关数据,目前实现的情况有些异常, 闹钟有时候只能循环设定2-3次然后就没有再进入中断了,程序没有跑飞,网上查到说需要每次闹钟结束之后读取当前时间再去设定,我也确实是这么做的,但是总是循环设定几次之后闹钟就没了。用的芯片是STM32L476,在一个HAL库的程序上添加的这个功能。
void set_invernal_alarm(uint32_t min)//按分钟去设置
{
        uint8_t day, h, m, s;
        RTC_AlarmTypeDef alarmsturcture;
        rtc_info_t rtc_alarm_set;
        get_rtc(&rtc_alarm_set);

        h        = (min%1440) / 60;
        m         = (min%1440) % 60;

        if((rtc_alarm_set.Minutes + m) >= 0x60)//计算分钟
        {
                m = (rtc_alarm_set.Minutes + m) - 0x60;
                h += 0x1;
        }
        else
        { m = (rtc_alarm_set.Minutes + m); }

        if((rtc_alarm_set.Hours + h) >= 0x24)//计算小时
        {
                h = (rtc_alarm_set.Hours + h) - 0x24;
                day += 0x1;
        }
        else
        { h = (rtc_alarm_set.Hours + h); }
       
        HAL_RTC_DeactivateAlarm(&hrtc, RTC_ALARM_A);
        alarmsturcture.AlarmMask                           = RTC_ALARMMASK_DATEWEEKDAY|RTC_ALARMMASK_SECONDS;//只设定时钟和分钟
        alarmsturcture.AlarmSubSecondMask                 = RTC_ALARMSUBSECONDMASK_ALL;
        alarmsturcture.Alarm                                         = RTC_ALARM_A;
        alarmsturcture.AlarmTime.Hours                         = h;
        alarmsturcture.AlarmTime.Minutes                 = m;
        alarmsturcture.AlarmTime.Seconds                 = 0x00;
        alarmsturcture.AlarmTime.SubSeconds         = 0x00;
        if( h < 0x12 )
                { alarmsturcture.AlarmTime.TimeFormat = RTC_HOURFORMAT12_AM; }
        else
                { alarmsturcture.AlarmTime.TimeFormat = RTC_HOURFORMAT12_PM; }
        HAL_RTC_SetAlarm_IT(&hrtc, &alarmsturcture, RTC_FORMAT_BCD);
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-6-15 03:27:50 | 显示全部楼层
回复

使用道具 举报

24

主题

72

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2018-3-13
在线时间
45 小时
 楼主| 发表于 2019-6-17 10:20:44 | 显示全部楼层
顶顶顶顶
回复

使用道具 举报

24

主题

72

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2018-3-13
在线时间
45 小时
 楼主| 发表于 2019-6-17 16:31:47 | 显示全部楼层
再顶顶顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-14 13:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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