你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于STM32RTC闹钟时间设置

[复制链接]
shanji 提问时间:2013-12-20 22:01 /
捣鼓了几天STM32103RB的RTC,最终还是没把闹钟调出来,因为不知道怎么设置闹钟时间,头都大了,望各位大侠帮帮小弟,指点指点
收藏 评论13 发布时间:2013-12-20 22:01

举报

13个回答
废鱼 回答时间:2013-12-21 10:22:36

RE:关于STM32RTC闹钟时间设置

闹钟是下个RTC产生的时候,比如当前RTC的值为20,那么闹钟的设置必须大于20,小于20的话就需要很久才能实现,RTC是32位的数据。
shanji 回答时间:2013-12-21 19:28:37

回复:关于STM32RTC闹钟时间设置

回复第 2 楼 于2013-12-21 10:22:36发表:
闹钟是下个RTC产生的时候,比如当前RTC的值为20,那么闹钟的设置必须大于20,小于20的话就需要很久才能实现,RTC是32位的数据。
 

我是不知道RTC_SetAlarm(0xFFFFFFFA);//设置报警值为0XFFFFFFFA,这到底是什么时间
dzc2001 回答时间:2013-12-24 19:11:17

RE:关于STM32RTC闹钟时间设置

固件库里面有RTC的示例代码
勒布朗 回答时间:2013-12-24 20:37:41

RE:关于STM32RTC闹钟时间设置

预先设置一个时间,读取当前时间,和预设值时间比较,相同则闹铃
Hiker天下 回答时间:2013-12-25 00:10:17

RE:关于STM32RTC闹钟时间设置

make
fengye5340 回答时间:2013-12-25 09:00:05

回复:关于STM32RTC闹钟时间设置

void RTC_TimeRegulate(void)
{
      int tmp_hh = 0x01, tmp_mm = 0x01, tmp_ss = 0x01;
     
      RTC_DateStructure.RTC_WeekDay = 0x05;
      RTC_DateStructure.RTC_Date = 0x06;
      RTC_DateStructure.RTC_Month = 0x0C; //12
      RTC_DateStructure.RTC_Year = 0x0D;  //13
      if(RTC_SetDate(RTC_Format_BIN, &RTC_DateStructure)!=ERROR)
              RTC_WriteBackupRegister(RTC_BKP_DR0,0x32F2);
      //配置时间
      tmp_hh = 15;
      tmp_mm = 44;
      tmp_ss = 03;
      RTC_TimeStructure.RTC_H12= RTC_H12_AM;       
       RTC_TimeStructure.RTC_Hours = tmp_hh;
    RTC_TimeStructure.RTC_Minutes = tmp_mm;
    RTC_TimeStructure.RTC_Seconds = tmp_ss;   
      if(RTC_SetTime(RTC_Format_BIN, &RTC_TimeStructure)!=ERROR)
          RTC_WriteBackupRegister(RTC_BKP_DR0,0x32F2);
      LCD_Clear(BLUE);
        //配置闹钟
      tmp_hh = 15;
      tmp_mm = 45;
      tmp_ss = 00;
      RTC_AlarmCmd(RTC_Alarm_A, DISABLE);
      RTC_AlarmStructure.RTC_AlarmTime.RTC_H12 = RTC_H12_PM;
      RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = tmp_hh ;
    RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = tmp_mm;
    RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = tmp_ss;
      RTC_AlarmStructure.RTC_AlarmDateWeekDay = 6;
      RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date;
      RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_DateWeekDay;
      RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure);//配置RTC闹钟寄存器
      RTC_ITConfig(RTC_IT_ALRA, ENABLE);//使能闹钟A的中断
      RTC_AlarmCmd(RTC_Alarm_A, ENABLE);//使能闹钟A
      LCD_Clear(BLUE);
}
给你发个参考程序看看,下面是闹钟的配置,时间上要比你设定的RTC时间多一些。
 
温柔的武士刀 回答时间:2013-12-25 10:01:55

RE:关于STM32RTC闹钟时间设置

http://wxphp.com/wxd-d8a21e755acfa1c7aa00ccf2-1.html
STM32 RTC 配置解说(原创) 楼主看看这份资料
废鱼 回答时间:2013-12-25 15:34:20

RE:关于STM32RTC闹钟时间设置

RTC_SetAlarm(0xFFFFFFFA);
下个闹钟的时间=(0xFFFFFFFA-当前RTC的值)秒以后执行.
有缘于你 回答时间:2013-12-25 18:48:32

RE:关于STM32RTC闹钟时间设置

RTC 的值等于0xFFFFFFFA时执行
shanji 回答时间:2014-4-14 17:06:01

回复:关于STM32RTC闹钟时间设置

回复第 8 楼 于2013-12-25 10:01:55发表:
http://wxphp.com/wxd-d8a21e755acfa1c7aa00ccf2-1.html
STM32 RTC 配置解说(原创) 楼主看看这份资料万分感谢 
shanji 回答时间:2014-4-14 17:06:55

回复:关于STM32RTC闹钟时间设置

回复第 4 楼 于2013-12-24 19:11:17发表:
固件库里面有RTC的示例代码 
shanji 回答时间:2014-4-14 17:08:20

回复:关于STM32RTC闹钟时间设置

回复第 5 楼 于2013-12-24 20:37:41发表:
预先设置一个时间,读取当前时间,和预设值时间比较,相同则闹铃 
shanji 回答时间:2014-4-14 17:07:42

回复:关于STM32RTC闹钟时间设置

回复第 7 楼 于2013-12-25 09:00:05发表:
void RTC_TimeRegulate(void)
{
      int tmp_hh = 0x01, tmp_mm = 0x01, tmp_ss = 0x01;
     
      RTC_DateStructure.RTC_WeekDay = 0x05;
      RTC_DateStructure.RTC_Date = 0x06;
      RTC_DateStructure.RTC_Month = 0x0C; //12
      RTC_DateStructure.RTC_Year = 0x0D;  //13
      if(RTC_SetDate(RTC_Format_BIN, &RTC_DateStructure)!=ERROR)
              RTC_WriteBackupRegister(RTC_BKP_DR0,0x32F2);
      //配置时间
      tmp_hh = 15;
      tmp_mm = 44;
      tmp_ss = 03;
      RTC_TimeStructure.RTC_H12= RTC_H12_AM;       
       RTC_TimeStructure.RTC_Hours = tmp_hh;
    RTC_TimeStructure.RTC_Minutes = tmp_mm;
    RTC_TimeStructure.RTC_Seconds = tmp_ss;   
      if(RTC_SetTime(RTC_Format_BIN, &RTC_TimeStructure)!=ERROR)
          RTC_WriteBackupRegister(RTC_BKP_DR0,0x32F2);
      LCD_Clear(BLUE);
        //配置闹钟
      tmp_hh = 15;
      tmp_mm = 45;
      tmp_ss = 00;
      RTC_AlarmCmd(RTC_Alarm_A, DISABLE);
      RTC_AlarmStructure.RTC_AlarmTime.RTC_H12 = RTC_H12_PM;
      RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = tmp_hh ;
    RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = tmp_mm;
    RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = tmp_ss;
      RTC_AlarmStructure.RTC_AlarmDateWeekDay = 6;
      RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date;
      RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_DateWeekDay;
      RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure);//配置RTC闹钟寄存器
      RTC_ITConfig(RTC_IT_ALRA, ENABLE);//使能闹钟A的中断
      RTC_AlarmCmd(RTC_Alarm_A, ENABLE);//使能闹钟A
      LCD_Clear(BLUE);
}
给你发个参考程序看看,下面是闹钟的配置,时间上要比你设定的RTC时间多一些。
 
 

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版