X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
stm32/stm8
[求助] STM32 RTC使用备份电池供电,当主电源断电,RTC到23:59:59时间如何清零?
caoqing
2013-10-29 08:38
楼主
原先是程序中到23:59:59时间清零,如不能清零,开机时间肯定超过24小时,怎么办??
点赞
回复评论 (2)
沙发
caoqing
改成:算出的小时后增加对24取余,好像小时也显示不对
THH =( TimeVar / 3600) % 24; //对吗??
TMM = (TimeVar % 3600) / 60;
TSS = (TimeVar % 3600) % 60;
printf("Time: %0.2d:%0.2d:%0.2d\r", THH, TMM, TSS);
[
本帖最后由 caoqing 于 2013-10-29 08:48 编辑
]
点赞
2013-10-29 08:42
板凳
zhaojun_xf
回复 楼主caoqing 的帖子
/**************************************************************************************
* FunctionName : RTCGetClock()
* Description : 获取时钟
* EntryParameter : None
* ReturnValue : None
**************************************************************************************/
void RTCGetClock(u8 *clk)
{
u8 i;
u32 temp = 0;
u16 temp1 = 0;
u16 tmpYea = 0;
u32 tmpSec = 0;
RTC_CLOCK tmpClk, *pClk;
pClk = &tmpClk;
//----------------------------- 十进制运算 ---------------------------------
tmpSec = RTC_GetCounter(); // 获取秒计数器的值
temp = tmpSec / 86400; // 得到天数(秒钟数对应的)
if (temp > 0) // 超过一天
{
temp1 = 1970;
while (temp >= 365)
{
if (RTC_LeapYear(temp1)) // 闰年
{
if (temp >= 366)
{
temp -= 366;
}
else
{
break;
}
}
else
{
temp -= 365;
}
temp1++;
}
}
tmpYea = temp1; // 得到年份
temp1 = 0;
while (temp >= 28) // 超过了一个月
{
if(RTC_LeapYear(tmpYea)&&temp1 == 1) // 当年是不是闰年
{
if (temp >= 29)
{
temp -= 29;
}
else
{
break;
}
}
else
{
if (temp >= RTC_MonTbl[temp1])
{
temp -= RTC_MonTbl[temp1];
}
else
{
break;
}
}
temp1++;
}
pClk->Yea = tmpYea-2000;
pClk->Mon = temp1 + 1; // 得到月份
pClk->Day = temp + 1; // 得到日期
temp = tmpSec % 86400; // 得到秒钟数
pClk->Hur = temp / 3600; // 小时
pClk->Min = (temp%3600) / 60; // 分钟
pClk->Sec = (temp%3600) % 60; // 秒钟
//----------------------------- 十进制转BCD --------------------------------
for (i=0; i<6; i++)
{
clk
= CMDec2Bcd(*(&pClk->Yea+i)); // DEC2BCD
}
}
我的博客
点赞
2013-10-29 10:01
最新活动
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
PI 电源小课堂|无 DC-DC 变换实现多路高精度输出反激电源
有奖直播报名:大联大世平集团&恩智浦 | AI 无所不在,单板电脑也可以
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
Follow me第二季第4期来啦!与得捷一起解锁蓝牙/Wi-Fi板【Arduino Nano RP2040 Connect】超能力!
嵌入式工程师AI挑战营(进阶):基于RV1106部署InsightFace算法,实现多人的实时人脸识别
随便看看
VCA821的AGC仿真电路调试问题(输出波形有失真)
Wince 5.0 120天评估版到期, 如何解决?
【晒电路】模拟电路PWM的实现电路图
弱弱的问一下关于移植包,
CortexM0__Timer32_0示例代码程序下载
【TI荐课】#超声波水气表方案设计挑战与解决方案#
晶体管参数在实际使用中的意义
【TI视频分享】SensorTag intro and how to use one of TIs most popular tool
为什么智能汽车用到的FPGA越来越多
同一工程项目中Verilog和C语言的作用分别是什么?
求助
各国电压一览表
SensorTile.Box 能连接wifi吗?能的话,如何操作?
求助该电路中R1的取值
急,急,急! 2812外扩SRAM不能正常读写!!
CC3200 LaunchPad 获取网络时间例程(get_time)简单运行解析
请帮忙看看 按键驱动的问题!!
解决IAR 无法跳转函数定义问题
国内最好的6G矢量网络分析仪AV3620的技术参数!
如何更改linux2.6中的开机画面?
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复