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

查看: 8500|回复: 6

需要stm32f207--RTC的ALARM中断代码

[复制链接]

6

主题

14

回帖

0

蝴蝶豆

新手上路

最后登录
2020-12-7
发表于 2012-2-23 08:56:12 | 显示全部楼层 |阅读模式
需要stm32f207--RTC的ALARM中断代码,哪个好心人有,发给我啊,谢谢了!
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2012-2-23 11:26:17 | 显示全部楼层

RE:需要stm32f207--RTC的ALARM中断代码

这个和RTC中断类似,只是在RTC中断里面判断的时候,加个判断alarm的功能。在设置的时候把RTC_IT_ALR这个也开启就可以了。
回复 支持 反对

使用道具 举报

6

主题

14

回帖

0

蝴蝶豆

新手上路

最后登录
2020-12-7
 楼主| 发表于 2012-2-23 14:44:03 | 显示全部楼层

回复:需要stm32f207--RTC的ALARM中断代码

回复第 2 楼 于2012-02-23 03:26:17发表:
这个和RTC中断类似,只是在RTC中断里面判断的时候,加个判断alarm的功能。在设置的时候把RTC_IT_ALR这个也开启就可以了。 

你好!
首先谢谢你的回复
我是在中断处理函数里那么做的
但是我怀疑是我在配置函数和一些处理函数时,没有配置好,因为程序没有往中断里跳转。
望能提供解决方法,谢谢!
回复 支持 反对

使用道具 举报

6

主题

14

回帖

0

蝴蝶豆

新手上路

最后登录
2020-12-7
 楼主| 发表于 2012-2-23 14:53:49 | 显示全部楼层

RE:需要stm32f207--RTC的ALARM中断代码

代码如下:
void wuRtc_Gpio_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        //GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
        //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
        //GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
}
void wuRtc_Nvic_Configuration(void)
{
          NVIC_InitTypeDef NVIC_InitStructure;
          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
          NVIC_InitStructure.NVIC_IRQChannel = RTC_Alarm_IRQn;
          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
          NVIC_Init(&NVIC_InitStructure);
}
void RtcIntruptInit(void)
{
    RTC_AlarmTypeDef RTC_AlarmStructure;
//        RTC_AlarmTypeDef RTC_AlarmStruct;
        RTC_AlarmCmd(RTC_Alarm_A, DISABLE);
        RTC_AlarmCmd(RTC_Alarm_B, DISABLE);
//        RTC_AlarmStructInit(&RTC_AlarmStruct);
        RTC_AlarmStructure.RTC_AlarmDateWeekDay = 1;
        RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date;
        RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_All;//RTC_AlarmMask_DateWeekDay|RTC_AlarmMask_Hours|RTC_AlarmMask_Minutes;
        RTC_AlarmStructure.RTC_AlarmTime.RTC_H12 = 0;
        RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = 0;
        RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = 0;
        RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = 0x01;
        RTC_SetAlarm(RTC_Format_BCD, RTC_Alarm_A, &RTC_AlarmStructure);
        RTC_SetAlarm(RTC_Format_BCD, RTC_Alarm_B, &RTC_AlarmStructure);
        RTC_WaitForSynchro();
        RTC_AlarmCmd(RTC_Alarm_A, ENABLE);
        RTC_AlarmCmd(RTC_Alarm_B, ENABLE);
}
void wuRtc_Configuration(void)
{
        RTC_InitTypeDef RTC_InitStructure;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
        PWR_BackupAccessCmd(ENABLE);
        wuRtc_Gpio_Init();          //osc32初始化
        /* 将外设BKP的全部寄存器重设为缺省值 */
        //RCC_BackupResetCmd(ENABLE);
        //RCC_BackupResetCmd(DISABLE);
        /* 使能LSE(外部32.768KHz低速晶振)*/
        RCC_LSEConfig(RCC_LSE_ON);
        /* 等待外部晶振震荡稳定输出 */
        while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET){}
        /*使用外部32.768KHz晶振作为RTC时钟 */
        RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
        RTC_WaitForSynchro();
        /* 使能 RTC 的时钟供给 */
        RCC_RTCCLKCmd(ENABLE);
        RTC_WaitForSynchro();
        //RTC_DeInit();
        RTC_InitStructure.RTC_AsynchPrediv = 0x7F;
        RTC_InitStructure.RTC_SynchPrediv = 0xFF;
        RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24;
        RTC_Init(&RTC_InitStructure);
        RTC_WaitForSynchro();
        Set10Sinit();
        wvRtcDateTimeSet();
        RTC_WaitForSynchro();
//        wuExtiLineCfg();/////////////////////////////..........TEST.....................////////////////////////
        wuRtc_Nvic_Configuration();
        RtcIntruptInit();
        RTC_WaitForSynchro();
        RTC_ITConfig(RTC_IT_ALRA, ENABLE);
        RTC_ITConfig(RTC_IT_ALRB, ENABLE);
        RTC_WaitForSynchro();       
        /* 使能 RTC 的时钟供给 */
        //RCC_RTCCLKCmd(ENABLE);
       
       
}
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2012-2-23 14:55:31 | 显示全部楼层

回复:需要stm32f207--RTC的ALARM中断代码

我这没有F2,只能你自己试了,这个是官方例程,你参考一下main里面的配置,没有工程,只有源码。

HW_Calendar.rar

下载

15.59 KB, 下载次数: 81

回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2012-2-23 16:44:06 | 显示全部楼层

RE:需要stm32f207--RTC的ALARM中断代码

wuRtc_Gpio_Init(); //osc32初始化
你配置IO口干什么?如果你选用的是32.768的晶振,IO口不用配置。你把这个屏蔽了试试。
回复 支持 反对

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-3-13 20:57:25 | 显示全部楼层

回复:需要stm32f207--RTC的ALARM中断代码

在那下呢
回复 支持 反对

使用道具 举报

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