STMCU小助手
发布时间:2022-3-5 09:54
|
问题现象) P& }. v y1 ~9 d J 客户在使用 STM32L4 RTC 功能的时候,调试时发现日历不再更新,而通过 IAR 跟踪 RTC 相关寄存器,同样发现没有更新,奇怪的是,在单步运行时,寄存器是可以更新的。1 m7 x2 n3 I$ a# E 问题原因分析 跟踪客户代码,发现客户使用 Cube 库带的 HAL 函数获取时间: HAL_RTC_GetTime(&RtcHandle, &stimestructureget, RTC_FORMAT_BIN);; N( O5 h0 |6 _: g0 y 函数本身没有任何问题,通过读 RTC 相应的寄存器去获取时间,那么问题出在什么地方呢?通过对比测试,找一块 STM32L4 的 Nucleo 单板,运行 Cube 库自带的例程: STM32Cube_FW_L4_V1.5.0\Projects\STM32L476RG-Nucleo\Examples\RTC\RTC_TimeStamp发现 Calendar 更新正常,而 Cube 库同样是调用 HAL 的代码库,通过反复对比示例,发现了其中的问题,在代码库中,在获取时间的同时,同样获取了日期的信息:( }, D' V" Q8 `' S+ o9 P( { HAL_RTC_GetTime(&RtcHandle, &stimestructureget, RTC_FORMAT_BIN); // 获取时间 X6 m# O1 k0 {/ z HAL_RTC_GetDate(&RtcHandle, &sdatestructureget, RTC_FORMAT_BIN); // 获取日期9 o) N6 ~: N" u* M! D/ R 同时获取之后,问题解决,更新正常! - j% d/ x9 X6 d. B# P9 s# J! R0 d+ Q 结论& H O w M) D7 o! ^1 d 在使用驱动时,需要特别注意原厂提供的官方示例,因为示例都是经过测试验证的,不要因为个人喜好随意对其做更改,以免引起奇怪的错误。 |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版