OpenEdv-开源电子网

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

如何用按键调节内部RTC时间

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2011-4-2
在线时间
0 小时
发表于 2011-4-2 17:30:46 | 显示全部楼层 |阅读模式
如题,小弟是新手,想调时间,但不知从何下手,谢谢各位了~
失败的对面就是成功~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-4-2 17:39:19 | 显示全部楼层
回复【楼主位】jc144555:
-------------------------------
很简单了,我都提供了一个函数的.你只需要做一下设置即可. 
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2011-4-2
在线时间
0 小时
 楼主| 发表于 2011-4-2 17:55:18 | 显示全部楼层
回复【2楼】正点原子:
-------------------------------
哪个函数呀,我想用按键调节时间,可以吗?
失败的对面就是成功~
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-4-2 18:08:46 | 显示全部楼层
有个set 的函数,在main函数里面,被我屏蔽了的.
肯定可以用按键设置的了.自己实现一下即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2011-4-2
在线时间
0 小时
 楼主| 发表于 2011-4-2 18:11:00 | 显示全部楼层
回复【4楼】正点原子:
-------------------------------
但是我试了,可能还有的地方不对,我再试试吧~
失败的对面就是成功~
回复 支持 反对

使用道具 举报

7

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2014-2-4
在线时间
71 小时
发表于 2014-2-8 00:22:19 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥,能否发一下这个函数,谢了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-2-8 17:23:36 | 显示全部楼层
回复【6楼】hu9977:
---------------------------------
//syear,smon,sday,hour,min,sec:年月日时分秒
//返回值:设置结果。0,成功;1,失败。
u8 RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)
{
u16 t;
u32 seccount=0;
if(syear<1970||syear>2099)return 1;    
for(t=1970;t<syear;t++) //把所有年份的秒钟相加
{
if(Is_Leap_Year(t))seccount+=31622400;//闰年的秒钟数
else seccount+=31536000;   //平年的秒钟数
}
smon-=1;
for(t=0;t<smon;t++)    //把前面月份的秒钟数相加
{
seccount+=(u32)mon_table[t]*86400;//月份秒钟数相加
if(Is_Leap_Year(syear)&&t==1)seccount+=86400;//闰年2月份增加一天的秒钟数    
}
seccount+=(u32)(sday-1)*86400;//把前面日期的秒钟数相加 
seccount+=(u32)hour*3600;//小时秒钟数
    seccount+=(u32)min*60;  //分钟秒钟数
seccount+=sec;//最后的秒钟加上去
    
//设置时钟
    RCC->APB1ENR|=1<<28;//使能电源时钟
    RCC->APB1ENR|=1<<27;//使能备份时钟
PWR->CR|=1<<8;    //取消备份区写保护
//上面三步是必须的!
RTC->CRL|=1<<4;   //允许配置 
RTC->CNTL=seccount&0xffff;
RTC->CNTH=seccount>>16;
RTC->CRL&=~(1<<4);//配置更新
while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成 
RTC_Get();//设置完之后更新一下数据 
return 0;     
}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

45

主题

248

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
448
金钱
448
注册时间
2013-5-18
在线时间
0 小时
发表于 2014-2-8 21:18:53 | 显示全部楼层
RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec) ,通过按键调节这里的参数便可,我做过的
回复 支持 反对

使用道具 举报

7

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2014-2-4
在线时间
71 小时
发表于 2014-2-8 22:39:10 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
谢谢
回复 支持 反对

使用道具 举报

7

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2014-2-4
在线时间
71 小时
发表于 2014-2-10 21:44:50 | 显示全部楼层
回复【8楼】王军强:
---------------------------------
能否发一下你的程序,谢谢。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-12-23
在线时间
0 小时
发表于 2014-2-13 19:27:14 | 显示全部楼层
小弟同求 程序 自己编了一个不行啊
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2015-10-19
在线时间
13 小时
发表于 2016-1-9 20:07:58 | 显示全部楼层
RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min-1,calendar.sec);  按一下按键,分钟减1
回复 支持 反对

使用道具 举报

8

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2021-11-24
在线时间
119 小时
发表于 2021-12-25 14:00:15 | 显示全部楼层
正点原子 发表于 2014-2-8 17:23
回复【6楼】hu9977:
---------------------------------
//syear,smon,sday,hour,min,sec:年月日时分秒
// ...

原子哥,就是使用扫描按键的方法去调整时间,为啥按键功能不能实现,是因为RTC一秒中断一次吗,必须使用按键中断才可以实现这个功能吗,如果不是,那按键扫描应该如何正确使用呢,求回复
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 04:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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