硬汉嵌入式论坛

 找回密码
 立即注册
查看: 244|回复: 2
收起左侧

[有问必答] 请教一下,STM32L4 使用FATFS+低功耗停止模式,退出停止模式后,FATFS不工作

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2024-3-3 22:42:21 | 显示全部楼层 |阅读模式
求救,使用STM32+sd+fatfs搞了一个低功耗采集的仪表,定时唤醒采集,空闲时进入低功耗STOP模式, 从停止模式唤醒后, FATFS出错不工作   串口等其他功能正常
试了很多方法 如: 进入低功耗前卸载文件系统   之后再重新初始化,重新挂载等方式 然后卡在fmount, 可以给点参考意见吗?

retSD = f_mount(NULL, "0:", 1);       
        if(retSD == 0)
        printf("f_unmout\n");
        else printf("f_unmouterror\n");
                printf("准备进入停止模式\n");
                MyIWDG.FeedDog();
                        __HAL_RCC_PWR_CLK_ENABLE();
                __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
                HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON ,PWR_SLEEPENTRY_WFI);


                        SystemClock_Config();
//                       
                        HAL_Init();
//HAL_ResumeTick();
  MX_GPIO_Init();
  MX_DMA_Init();
MyIWDG.FeedDog();
                printf("已经退出停止模式\n");

MX_SDMMC1_SD_Init();

  MX_FATFS_Init();
        printf("初始化完成\n");
        MyIWDG.FeedDog();

        retSD = SdMount();//挂载文件系统  退出stop模式卡在这   下面信息也不打印
        printf("SdMountretSD=%d\n",retSD);
        if(retSD == 0)
        printf("sdmount_success\n");
        else printf("sdmount_serror\n");


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106645
QQ
发表于 2024-3-4 00:51:59 | 显示全部楼层
唤醒后重新配置系统时钟就行,外设时钟一般不用重新初始化。

评分

参与人数 1金币 +20 收起 理由
tangkeyang + 20 很给力!

查看全部评分

回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2024-3-4 09:43:06 | 显示全部楼层
试过只重新配置系统时钟  出错采想着重新初始化外设;  进入低功耗前要不要关闭文件、卸载文件系统 ,唤醒后再重新挂载、以及打开文件,    我现在一个个试了,唤醒后,无论是  挂载文件系统  还是打开文件    都是返回FR_DISK_ERR,要么直接卡死   ;    唤醒后直接写的话(进入低功耗模式前不关闭文件,也不卸载文件系统,) 则返回FR_INVALID_OBJECT,    这个问题搞了两三天了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-27 16:26 , Processed in 0.185066 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表