OpenEdv-开源电子网

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

求一份F4系列RTC闹钟的例程

[复制链接]

60

主题

167

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
277
金钱
277
注册时间
2017-3-17
在线时间
120 小时
发表于 2017-10-15 13:45:42 | 显示全部楼层 |阅读模式
5金钱
求一份F4系列RTC闹钟的例程,要求是每天早上启动,下午关闭。是不是A、B闹钟都要设置?
[mw_shl_code=c,true]void RTC_Set_AlarmA(u8 week,u8 hour,u8 min,u8 sec)
{
        EXTI_InitTypeDef   EXTI_InitStructure;
        RTC_AlarmTypeDef RTC_AlarmTypeInitStructure;
        RTC_TimeTypeDef RTC_TimeTypeInitStructure;
        
        RTC_AlarmCmd(RTC_Alarm_A,DISABLE);//1رÕÄÖÖóA
        
  RTC_TimeTypeInitStructure.RTC_Hours=hour;//D¡ê±
        RTC_TimeTypeInitStructure.RTC_Minutes=min;//·ÖÖó
        RTC_TimeTypeInitStructure.RTC_Seconds=sec;//Ãë
        RTC_TimeTypeInitStructure.RTC_H12=RTC_H12_AM;
  
        RTC_AlarmTypeInitStructure.RTC_AlarmDateWeekDay=week;//DÇÆú
        RTC_AlarmTypeInitStructure.RTC_AlarmDateWeekDaySel=RTC_AlarmDateWeekDaySel_WeekDay;//°′DÇÆúÄÖ
        RTC_AlarmTypeInitStructure.RTC_AlarmMask=RTC_AlarmMask_None;//¾«è·Æ¥ÅäDÇÆú£¬ê±·ÖÃë
        RTC_AlarmTypeInitStructure.RTC_AlarmTime=RTC_TimeTypeInitStructure;
  RTC_SetAlarm(RTC_Format_BIN,RTC_Alarm_A,&RTC_AlarmTypeInitStructure);

        
        RTC_ClearITPendingBit(RTC_IT_ALRA);//Çå3yRTCÄÖÖóAμıêÖ¾
  EXTI_ClearITPendingBit(EXTI_Line17);//Çå3yLINE17éÏμÄÖD¶Ï±ê־λ
        
        RTC_ITConfig(RTC_IT_ALRA,ENABLE);//¿aÆôÄÖÖóAÖD¶Ï
        RTC_AlarmCmd(RTC_Alarm_A,ENABLE);//¿aÆôÄÖÖóA
        
        EXTI_InitStructure.EXTI_Line = EXTI_Line17;//LINE17
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//ÖD¶Ïê¼t
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //éÏéyÑØ′¥·¢
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;//ê1ÄüLINE17
  EXTI_Init(&EXTI_InitStructure);//ÅäÖÃ

        NVIC_InitStructure.NVIC_IRQChannel = RTC_Alarm_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;//ÇàÕ¼óÅÏè¼¶1
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//×óóÅÏè¼¶2
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//ê1Äüía2¿ÖD¶Ïí¨μà
  NVIC_Init(&NVIC_InitStructure);//ÅäÖÃ
}[/mw_shl_code]



[mw_shl_code=c,true]
void RTC_Alarm_IRQHandler(void)
{   
        if(RTC_GetFlagStatus(RTC_FLAG_ALRAF)==SET)//ALARM AÖD¶Ï?
        {
                RTC_ClearFlag(RTC_FLAG_ALRAF);//Çå3yÖD¶Ï±êÖ¾
                printf("ALARM A!\r\n");
        }   
        EXTI_ClearITPendingBit(EXTI_Line17);        //Çå3yÖD¶ÏÏß17μÄÖD¶Ï±êÖ¾                                                                                          
}[/mw_shl_code]

每天要怎么设置,不是某一星期?闹钟B要怎么设置

最佳答案

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2017-10-15 13:45:43 | 显示全部楼层
回复

使用道具 举报

60

主题

167

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
277
金钱
277
注册时间
2017-3-17
在线时间
120 小时
 楼主| 发表于 2017-10-16 10:14:47 | 显示全部楼层

例程上是设置实时时钟,我想设置闹钟
[mw_shl_code=c,true]void RTC_Set_AlarmA(u8 week,u8 hour,u8 min,u8 sec)[/mw_shl_code]
例程上的参数有week,每天应该怎么设置
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2017-10-17 01:15:33 | 显示全部楼层
Eternal单人行 发表于 2017-10-16 10:14
例程上是设置实时时钟,我想设置闹钟
[mw_shl_code=c,true]void RTC_Set_AlarmA(u8 week,u8 hour,u8 min ...

当前是星期几,就星期几
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

60

主题

167

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
277
金钱
277
注册时间
2017-3-17
在线时间
120 小时
 楼主| 发表于 2017-10-17 09:06:51 | 显示全部楼层
正点原子 发表于 2017-10-17 01:15
当前是星期几,就星期几

每天闹钟,是不是要每天重设置闹钟
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 19:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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