OpenEdv-开源电子网

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

RTC的一些问题

[复制链接]

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-7-25
在线时间
0 小时
发表于 2011-7-29 17:22:23 | 显示全部楼层 |阅读模式
extern const u8 *COMPILED_DATE;//获得编译日期
extern const u8 *COMPILED_TIME;//获得编译时间
这个是自动获得系统的时间和日期,获取的格式什么呢,比如年月日如何排列,时间又是如何排列呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-7-29 17:24:17 | 显示全部楼层
很简单,你自己写代码测试不就知道了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-7-25
在线时间
0 小时
 楼主| 发表于 2011-7-30 09:53:25 | 显示全部楼层
那么他是怎么获取到的时间的呢,
并且时间和真实时间相差一个小时左右。  
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-7-25
在线时间
0 小时
 楼主| 发表于 2011-7-30 10:13:40 | 显示全部楼层
RCC->APB1ENR|=1<<28;//使能电源时钟 
????RCC->APB1ENR|=1<<27;//使能备份时钟 
PWR->CR|=1<<8;????//取消备份区写保护 
手册上介绍?配置RTC时钟的功能 
1)使能电源时钟和备份区域时钟。? 
前面已经介绍了,我们要访问?RTC?和备份区域就必须先使能电源时钟和备份区域时钟。这 
个通过?RCC_APB1ENR?寄存器来设置。? 
2)取消备份区写保护。? 
要向备份区域写入数据,就要先取消备份区域写保护(写保护在每次硬复位之后被使能), 
请问第一条,是不是在任何时候修改RTC相关寄存器的时候都要写最前面的三句话?
感觉RTC_Set这个函数调用了上面的语句
但RTC_Get这个函数却没调用,但这两个函数都对rtc相关寄存器做了操作了啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-7-30 10:39:26 | 显示全部楼层
回复【3楼】十八铜人:
---------------------------------
就是获得你电脑的当前时间和日期.如果差一个小时左右,你没有全编译,导致没有重新获取.你全编译一次,就可以最新了.
第一条,修改RTC相关寄存器,上面三句是必要的.
但是RTC_GET只是读,并不涉及到改变RTC寄存器.

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

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-7-25
在线时间
0 小时
 楼主| 发表于 2011-7-30 10:54:32 | 显示全部楼层
哦 谢谢了
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-7-25
在线时间
0 小时
 楼主| 发表于 2011-7-30 10:55:40 | 显示全部楼层
额 怎样全编译?
回复 支持 反对

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2011-7-18
在线时间
0 小时
发表于 2011-7-30 14:45:18 | 显示全部楼层
回复【7楼】十八铜人:
---------------------------------
很晕。。。这么低级的问题
回复 支持 反对

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2011-7-18
在线时间
0 小时
发表于 2011-7-30 14:46:27 | 显示全部楼层
回复【8楼】小华338:
---------------------------------
编译的旁边就是它
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-7-25
在线时间
0 小时
 楼主| 发表于 2011-7-31 10:07:50 | 显示全部楼层
回复【9楼】小华338:
---------------------------------
o
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-7-25
在线时间
0 小时
 楼主| 发表于 2011-7-31 10:11:46 | 显示全部楼层
因此,若
在读取 RTC寄存器曾经被禁止的 RTC APB1 接口,软件首先必须等待 RTC_CRL 寄存器的 RSF
位(寄存器同步标志位,bit3)被硬件置 1。


但是我看在程序中
else//系统继续计时
{
     while(!(RTC->CRL&(1<<3)));//等待RTC寄存器同步  
     RTC->CRH|=0X01;     //允许秒中断
     while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成
//printf("OK\n");
}

这些语句中也没有进行读的操作啊?
还有 在RTC_Set()函数中为什么要从新开启时钟呢?

//设置时钟
    RCC->APB1ENR|=1<<28;//使能电源时钟
    RCC->APB1ENR|=1<<27;//使能备份时钟
PWR->CR|=1<<8;    //取消备份区写保护
//上面三步是必须的!        
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-7-31 10:28:51 | 显示全部楼层
回复【11楼】十八铜人:
---------------------------------
你要搞清楚状况.执行到else这里的前提条件是什么?
另外一个,RTC的某些寄存器,是不会随着你的复位而复位的,除非断电/或者软件上强制复位.

else里面就一定要读么?

RTC_SET,为什么要开启时钟呢?这里的主要目的是取消备份区域写保护,从而让设置时钟可以正常进行.
这个时钟肯可能不一定要开启,因为在第一次初始化的时候,已经开启了.不过我不确定,你试试注释掉前面两个时钟使能,看看可以正常使用不?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-7-25
在线时间
0 小时
 楼主| 发表于 2011-7-31 14:54:34 | 显示全部楼层
第一次没仔细看,有点乱 
else里加while(!(RTC->CRL&(1<<3))) 是因为要修改CRH寄存器 ,是这样吗,和前提条件有什么关系呢?
还有while(!(RTC->CRL&(1<<5)));这条语句什么时候要加,我看程序里有的地方是连续写了几个寄存器以后才判断是否完成。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-7-31 16:32:58 | 显示全部楼层
这几个问题,你还是好好看看STM32参考手册吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 19:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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