OpenEdv-开源电子网

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

关于stm32闹钟问题

[复制链接]

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
发表于 2018-9-12 21:43:47 | 显示全部楼层 |阅读模式
1金钱
截图.png
请问为什么要在两处地方使能秒钟中断?我把else里面的使能语句注释就不能进入中断了是怎么回事?

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

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2018-9-13 00:04:29 | 显示全部楼层
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-9-13 09:47:18 | 显示全部楼层
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

1

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-9-11
在线时间
6 小时
发表于 2018-9-13 09:49:25 | 显示全部楼层
这个是编程吗  是用什么语言写的??
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-13 10:57:58 | 显示全部楼层
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-13 10:59:27 | 显示全部楼层
1208 发表于 2018-9-13 09:47
你参考下这个帖子:http://www.openedv.com/forum.php?mod=viewthread&tid=275322&extra=

我看过了,不过没解释到我的问题啊
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-13 11:00:18 | 显示全部楼层
zhaosansan 发表于 2018-9-13 09:49
这个是编程吗  是用什么语言写的??

用提供的库函数编程
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17784
金钱
17784
注册时间
2018-3-3
在线时间
523 小时
发表于 2018-9-13 11:11:35 | 显示全部楼层
这是分支语句呀,只会执行一个的
/*
*
*
*
*
*
*/
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-13 11:19:47 | 显示全部楼层
int main(void)
{         
  
        delay_init();                     //延时函数初始化          
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
//        uart_init(115200);                 //串口初始化为115200
        LED_Init();
        delay_ms(250);
        LED1=0;
        delay_ms(250);
        RTC_Init();                                  //RTC初始化
//        WKUP_Init(); //待机唤醒初始化

         
        while(1)
        {

        }
}
这是我的主函数,我发现不管有没有注释else里的语句,关电重启后LED1灯都会闪烁两下,好像复位了,这是怎么回事?
回复

使用道具 举报

26

主题

355

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
发表于 2018-9-13 13:16:21 | 显示全部楼层
RTC时间没丢失的情况下,执行的是if,但是当你注释掉else再下载程序的时候执行的是else,因为没有断电只是复位,BKP寄存器的值没有清零,所以你注释掉else中的那句代码不行.
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-13 16:03:07 | 显示全部楼层
陈皮皮 发表于 2018-9-13 13:16
RTC时间没丢失的情况下,执行的是if,但是当你注释掉else再下载程序的时候执行的是else,因为没有断电只是复 ...

我看了一下手册,RTC的CR寄存器在下载程序时应该是复位了,所以再次下载程序要重新中断使能,就像你说的那样。
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-13 16:04:30 | 显示全部楼层
陈皮皮 发表于 2018-9-13 13:16
RTC时间没丢失的情况下,执行的是if,但是当你注释掉else再下载程序的时候执行的是else,因为没有断电只是复 ...

int main(void)
{         
  
        delay_init();                     //延时函数初始化         
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
//        uart_init(115200);                 //串口初始化为115200
        LED_Init();
        delay_ms(250);
        LED1=0;
        delay_ms(250);
        RTC_Init();                                  //RTC初始化
//        WKUP_Init(); //待机唤醒初始化

         
        while(1)
        {

        }
}
这是我的主函数,关电重启后LED1灯会闪烁两下,好像复位了,其它地方我没用到LED1,请问这是怎么回事?
回复

使用道具 举报

26

主题

355

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
发表于 2018-9-13 17:57:30 | 显示全部楼层
艳彩 发表于 2018-9-13 16:04
int main(void)
{         
  

没什么问题啊,断电再上电初始化闪烁有什么问题
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-13 20:27:41 | 显示全部楼层
陈皮皮 发表于 2018-9-13 17:57
没什么问题啊,断电再上电初始化闪烁有什么问题

不过我这主程序写的LED1是常亮啊,闪烁两下是怎么回事?
回复

使用道具 举报

9

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2018-4-6
在线时间
31 小时
发表于 2018-9-14 07:31:09 | 显示全部楼层
只会执行1次,如果上电第一次修改时间就进第一个,如果上电不用修改时间就进else,原子的视频里有讲解的
回复

使用道具 举报

26

主题

355

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
发表于 2018-9-14 08:28:05 | 显示全部楼层
艳彩 发表于 2018-9-13 20:27
不过我这主程序写的LED1是常亮啊,闪烁两下是怎么回事?

while(1) 大循环没写啊,程序只会在while(1)循环或者中断中运行,while(1)之前的main函数只有在初始化时执行
回复

使用道具 举报

0

主题

109

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2018-9-2
在线时间
8 小时
发表于 2018-9-14 08:37:22 | 显示全部楼层
顶一下,谢谢分享
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-14 16:02:20 | 显示全部楼层
陈皮皮 发表于 2018-9-14 08:28
while(1) 大循环没写啊,程序只会在while(1)循环或者中断中运行,while(1)之前的main函数只有在初始化时执 ...

好的,谢谢!
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-14 16:02:56 | 显示全部楼层
15353920254 发表于 2018-9-14 07:31
只会执行1次,如果上电第一次修改时间就进第一个,如果上电不用修改时间就进else,原子的视频里有讲解的

好的,谢谢!
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-9-1
在线时间
11 小时
 楼主| 发表于 2018-9-14 16:03:23 | 显示全部楼层
Psheng 发表于 2018-9-13 11:11
这是分支语句呀,只会执行一个的

谢谢!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 23:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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