你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【ST MCU实战经验】STM32Cube_FW_F4 中RTC_Calendar例程的BUG

[复制链接]
沐紫 发布时间:2016-1-4 13:05
前言4 o1 Z2 S+ e# K" {
实时时钟(RTC)是一个独立的BCD 定时器/计数器,用来提供准确的日历和时间信息。准确性是其重要的指标。% L2 p. J% C+ `: q
1 i* ?( E4 V/ N3 X+ l# g1 d
问题/ `. a) r4 G0 X9 ]& U. [# |1 E
某客户在其产品的设计中,使用了STM32F429IIT6。客户在使用过程发现一个问题,虽然已经有使用电池对VBAT 进行供电,
  r9 N6 T8 P  m) x# F! e/ k但是在经常频繁的VDD 上下电之后,发现时钟会比准确的时间慢几秒钟。$ u  h; E. U4 N  {0 X

- V, a" e- f& w4 R( w+ V0 U# W调研
6 [9 c  V6 e6 C
1 @2 e4 t& T6 F2 D2 B9 p! |5 Q( ^1.了解问题2 S) a/ ^6 V2 J
向客户了解其使用的固件库,得知他的程序是参考STM32Cube_FW_F4_V1.3.0\Projects\STM324x9I_EVAL\Examples\RTC% f- i0 E: m( J1 K& ~( \* Q
中的RTC_Calendar 例程。于是找来STM32439I-EVAL2 来进行验证,测试发现,, J7 w0 ]3 Y, M. b& s' f2 |
STM32Cube_FW_F4_V1.3.0\Projects\STM324x9I_EVAL\Examples\RTC 中的RTC_Calendar 例程确实存在频繁上下电会导4 l! P6 B$ J- e- K! Q( U
致时间变慢的情况;而对标准外设库0 a4 ~; h: C1 ?8 s; R: y6 O) b1 ~
STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Examples\RTC 中的RTC_Calendar 例程进行测试,
) g7 H& p5 ?' J7 n" f& n& z  F则不存在此问题。所以,怀疑STM32Cube_FW_F4_V1.3.0\Projects\STM324x9I_EVAL\Examples\RTC 中的RTC_Calendar
4 K4 `: \6 p3 ^. I例程存在Bug。4 }7 B+ F" q, S
. `0 K* X" L' d7 b1 F
2.问题分析
+ [8 \* B$ L+ W: l" _: F仔细阅读STM32Cube_FW_F4_V1.3.0\Projects\STM324x9I_EVAL\Examples\RTC 中的RTC_Calendar 例程,分析一下
( i% T9 r8 m9 E' bmain.c 主程序,“if(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR0) != 0x32F2)”是用来判断RTC 是否是已经被配' x9 h8 F! M9 ^9 ]: @
置过的,所以怀疑的重点可放在这之前的“if(HAL_RTC_Init(&RtcHandle) != HAL_OK)”中的HAL_RTC_Init()函数。& T0 e0 T- g' h5 x4 ^" T, M: E& I& L7 l
进入位于stm32f4xx_hal_rtc.c 中的HAL_RTC_Init()函数,再进入其调用的位于stm32f4xx_hal_msp.c 中的
# I- e0 A4 `7 \6 I! \; D# x  zHAL_RTC_MspInit()函数,在这个函数中,可以看到以下代码:
' t# `7 z% K# E/ L" O9 S2 `2 V+ |- n3 y( f* h' D/ X9 u: M
详细代码和解答请下载文档:https://www.stmcu.org.cn/document/detail/index/id-216744( r% e/ i) n8 s9 n2 u
更多实战经验文档:https://www.stmcu.org.cn/document/list/index/category-657" N5 h$ |+ {8 V- R3 y: J

$ N2 J) u+ \8 c( O2 ~
, D+ C  J+ d3 ?4 P/ o
赞 收藏 2 评论1 发布时间:2016-1-4 13:05

举报

1个回答
yanhaijian 回答时间:2016-1-11 14:09:55
现在用库除非遇到问题很少有人去分析了。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版