历史上的今天
今天是:2024年09月03日(星期二)
2019年09月03日 | RTC--日期必须重启才更新问题
2019-09-03 来源:eefocus
芯片:STM32F030C8T6
问题:RTC设置时间,时间可正常设置,日期需要重启才能设置成功
相关代码:
/************************************************
函数名称 : RTC_GetDateTime
功 能 : 读取RTC日期时间(含日历、星期)
参 数 : RTC_DateTimeStructure -- RTC结构体
返 回 值 :
*************************************************/
void RTC_GetDateTime(RTC_DateTimeTypeDef *RTC_DateTimeStructure)
{
RTC_DateTypeDef RTC_DateStructure;
RTC_TimeTypeDef RTC_TimeStructure;
RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure);
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);
RTC_DateTimeStructure->Year = RTC_DateStructure.RTC_Year;
RTC_DateTimeStructure->Month = RTC_DateStructure.RTC_Month;
RTC_DateTimeStructure->Date = RTC_DateStructure.RTC_Date;
RTC_DateTimeStructure->Week = RTC_DateStructure.RTC_WeekDay;
RTC_DateTimeStructure->Hour = RTC_TimeStructure.RTC_Hours;
RTC_DateTimeStructure->Minute = RTC_TimeStructure.RTC_Minutes;
RTC_DateTimeStructure->Second = RTC_TimeStructure.RTC_Seconds;
}
设置RTC、时间(时分秒)正常更新了,可是日期(年月日)却未更新、重启后日期才更新。
解决:
@note You must call HAL_RTC_GetDate() after HAL_RTC_GetTime() to unlock the values ,在HAL_RTC_GetDate
也就是说必须先 获取时间 再获取日期,才能正常更新时间。
更改后:
void RTC_GetDateTime(RTC_DateTimeTypeDef *RTC_DateTimeStructure)
{
RTC_DateTypeDef RTC_DateStructure;
RTC_TimeTypeDef RTC_TimeStructure;
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);
RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure);
RTC_DateTimeStructure->Year = RTC_DateStructure.RTC_Year;
RTC_DateTimeStructure->Month = RTC_DateStructure.RTC_Month;
RTC_DateTimeStructure->Date = RTC_DateStructure.RTC_Date;
RTC_DateTimeStructure->Week = RTC_DateStructure.RTC_WeekDay;
RTC_DateTimeStructure->Hour = RTC_TimeStructure.RTC_Hours;
RTC_DateTimeStructure->Minute = RTC_TimeStructure.RTC_Minutes;
RTC_DateTimeStructure->Second = RTC_TimeStructure.RTC_Seconds;
}
史海拾趣
|
绝缘栅双极晶体管基础 The Foundation of Insulation Grid Bipolar Transistor ST公司 Mario Aleo IGBT 结构及工作原理IGBT是强电流、高压应用和快速终端设备用垂直功率MOSFET的自然进化。由于实现一个较高的击穿电压BVDSS需要一个源漏通 ...… 查看全部问答> |
|
如何正确选用微波无线监控系统? 随着现代技术突飞猛进的发展,微波无线图像、语音传输系统被广泛应用于广播电视、公安消防、大型住宅区、停车场、重点保护区、库区及水下作业等场所。因其中间无需架设线缆,发射主机和接收机体积小,工作电流小 ...… 查看全部问答> |
|
在下,混杀在软件行业七年左右,以c/c++为主,多半在winnt/linux/solaris上做开发. 由于行业竟急日趋激烈,小弟我打算转行做硬件. 我给自已的定位是,操作系统,电子电路.这方面. 请问大家,我该如何学习.… 查看全部问答> |
|
现在,我手头有一个直流伺服电机,自带一套直流伺服电机驱动器。 需要用AVR单片机制作电路,利用外部采集的信号,经处理后按照我们的思路和程序,控制该直流伺服电机驱动器。最终由驱动器控制直流伺服电机。 以往 ...… 查看全部问答> |
|
我在WinCE6.0下写流驱动用到VirtualAlloc与VirtualCopy函数,VirtualCopy运行出错了,GetLastError返回值为87,是参数错误,难道VirtualCopy在驱动里也不能用吗?请大虾指点一下!DWORD GPI_Init(LPCTSTR pContext){ DWORD GPIOSuccess=1;&nbs ...… 查看全部问答> |
|
TI 专有 Impedance Track™ 容量测量技术的铅酸电池管理电量监测计集成电路。该 bq34z110 电量监测计 IC 采用小型 14 引脚封装,是业界唯一一款可扩展电源管理器件,支持具有 4V、12V、24V、48V 以及更高电池电压的多串铅酸电池组。 ~采用 I ...… 查看全部问答> |
|
U-boot移植心得《二》 下面我开始分析start.S,在分析之前,我们要了解,u-boot引导linux加载的过程分为2个阶段,第一个阶段的终极目的就是设置好各种硬件环境,将代码从nor flash或NAND flash中拷贝到外部RAM中,然后跳转到C函数中去。第二阶段 ...… 查看全部问答> |




