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

STM32F4 的RTC系统断电,电池没有断电,读备份寄存器的数据一直是0 ,不断电前写、读数据都是没问题的,再上电时间也是没问题的,请大侠们指导下急急急!!!

[复制链接]
liuxingyu123xyz 提问时间:2021-10-31 11:16 / 未解决
static RTC_HandleTypeDef RTC_Handler;
static rt_tick_t  g_BckupTime;

#define BACKUP_INTERVAL                (1000U)

#define BACKUP_REG                RTC_BKP_DR2
static uint32_t g_backup;
static uint32_t g_backupdata;
void BackUpInit(void)
{
    RTC_Handler.Instance = RTC;
    //__HAL_RCC_BKP_CLK_ENABLE();
    //HAL_PWR_EnableBkUpAccess();
        g_backup = HAL_RTCEx_BKUPRead(&RTC_Handler, BACKUP_REG);
        rt_kprintf(" first Power down timestamp is [%d] \n", g_backup);
}

void BackUpPoll(void)
{

        if(TimerAfter(rt_tick_get(), g_BckupTime)){
                g_BckupTime = rt_tick_get()  + rt_tick_from_millisecond(BACKUP_INTERVAL);
                HAL_PWR_EnableBkUpAccess();
                HAL_RTCEx_BKUPWrite(&RTC_Handler, BACKUP_REG, g_NowTime);
                //g_backup = HAL_RTCEx_BKUPRead(&RTC_Handler, BACKUP_REG);
                rt_kprintf("Power down timestamp is [%d] \n", g_NowTime);

        }
}

uint32_t BackUpGet(void)
{
        return g_backup;
}

收藏 评论3 发布时间:2021-10-31 11:16

举报

3个回答
butterflyspring 回答时间:2021-11-2 15:40:36
官方有个例程,里面有关于备份寄存器写入和判断的配置和代码,楼主可以参考并验证一下。另外也需注意电池供电是否正常,尤其是电路是否合适,避免电池同时给其他线路供电。
STM32Cube_FW_F4_V1.25.2\Projects\STM324xG_EVAL\Examples\RTC\RTC_Calendar\
liuxingyu123xyz 回答时间:2021-11-3 23:21:59

butterflyspring 发表于 2021-11-2 15:40
官方有个例程,里面有关于备份寄存器写入和判断的配置和代码,楼主可以参考并验证一下。另外也需注意电池供 ...

能否给提供个例程?

butterflyspring 回答时间:2021-11-4 15:07:36

liuxingyu123xyz 发表于 2021-11-3 23:21
能否给提供个例程?

下载官方的STM32Cube_FW_F4_V1.25.2的库,或者更新版本,里面的例程就包含了备份域寄存器的写和判断。 STM32Cube_FW_F4_V1.25.2\Projects\STM324xG_EVAL\Examples\RTC\RTC_Calendar\

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版