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

stm32cubemx RTC的问题

[复制链接]
elvis00 提问时间:2022-2-17 15:31 / 未解决

stm32cubemx生成的RTC工程,MX_RTC_Init();函数手动是能RTC-CNF位进行设置吗?如果用按键设置时间直接调用HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD);还需要进行别的手动设置吗?

收藏 评论3 发布时间:2022-2-17 15:31

举报

3个回答
xmshao 回答时间:2022-2-17 16:49:18
你没说芯片型号,不知你提到的RTC-CNF具体是个什么位。STM32系列太多了。


你如果通过调用HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD);来设置初始时间
的话无需额外操作了。当然 调用该函数前 要保证对RTC的基本参数完成了初始化,即执行过
HAL_RTC_Init()了。


如果你不是基于库调用而是手动自己组织初始化的话,注意初始过程中要先操作相关寄存器进入
初始化模式,并检查相关标志直到进入初始化状态。初始化完毕后退出初始化模.


同样,你如果不是基于库调用而是自己组织代码设置时间,注意先要关闭RTC寄存器的写保护。


STM32各个系列的Cube库里都有RTC例程,不妨阅读参考下。
真情永存 回答时间:2022-2-18 09:21:30

不知道你是用的哪个系列,HAL_RTC_SetTime是可以直接设置时间的。cubemx生成的MX_RTC_Init()函数没有判断时间设置初始化标志,即每次上电都会重新设置成cubemx里面预设的时间。需要自己调整MX_RTC_Init()函数。

xmshao 回答时间:2022-2-18 10:02:00

你没说芯片型号,不知你提到的RTC-CNF具体是个什么位。STM32系列太多了。

你如果通过调用HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD);来设置初始时间

的话无需额外操作了。当然 调用该函数前 要保证对RTC的基本参数完成了初始化,即执行过

HAL_RTC_Init()了。

如果你不是基于库调用而是手动自己组织初始化的话,注意初始过程中要先操作相关寄存器进入

初始化模式,并检查相关标志直到进入初始化状态。初始化完毕后退出初始化模.

同样,你如果不是基于库调用而是自己组织代码设置时间,注意先要关闭RTC寄存器的写保护。

STM32各个系列的Cube库里都有RTC例程,不妨阅读参考下。

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版