硬汉嵌入式论坛

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

[有问必答] STM32f103+FATFS+f_sync

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2024-1-13 16:40:36 | 显示全部楼层 |阅读模式
楼主想要20ms向SD卡内存数据,采用的是初始化f_open后使用f_write和f_sync循环向SD卡写入数据,但总是会执行几次后在f_sync处卡死,想问一下各位老哥这种是啥问题以及有没有对应的解决方案
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2024-1-13 17:05:54 | 显示全部楼层
把你的SD卡使用SD卡联盟的小软件格式化下,看看好使不。如果不好使,两个地方再试试

1、换几个其它牌子的主流SD卡测试。
2、换了SD卡还不行,说明你的底层驱动有点问题。

继续提升STM32F4的4线SDIO DMA方式的读写稳定性,发布新版案例(2020-06-30)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=98560
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2024-1-13 18:01:25 | 显示全部楼层
谢谢老哥的回复,我试了一下格式化后还是不好使,然后我试过两张闪迪8GB的卡都有问题,关于底层驱动这个问题我用的是正点原子的例程,然后之前有成功储存过,甚至说今天下午看到您的帖子后把f_close换成了f_sync后也写入2000次都没问题,但就是现在又莫名其妙出这号问题,要不老哥您有空帮忙看看写的代码,我感觉逻辑上没啥问题
1.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2024-1-13 18:24:46 | 显示全部楼层
szy 发表于 2024-1-13 18:01
谢谢老哥的回复,我试了一下格式化后还是不好使,然后我试过两张闪迪8GB的卡都有问题,关于底层驱动这个问 ...

你的局部变量太大了,优先加载xxx.S启动文件的stack大小。

还是不行,得优化你的底层驱动了。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2024-1-13 18:29:45 | 显示全部楼层
谢谢老哥的回复 这个字符数组我也定义过在为全局变量然后也有问题,老哥您说的优化底层驱动是指哪方面,底层的不都是移植FATFS那几个官方的文件吗 还能够咋优化
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
发表于 2024-2-24 08:45:35 | 显示全部楼层
szy 发表于 2024-1-13 18:29
谢谢老哥的回复 这个字符数组我也定义过在为全局变量然后也有问题,老哥您说的优化底层驱动是指哪方面,底 ...

底层驱动就是操作SD的那几个函数,初始化,读,写函数等;也可以试试降低SD通讯时钟频率去测试看看行不行,没问题再慢慢升高
回复

使用道具 举报

0

主题

10

回帖

10

积分

新手上路

积分
10
发表于 2024-3-21 20:14:27 | 显示全部楼层
楼上说的 我觉得可以试一试 降速。有个参数 叫做DIV之类的。估计能解决你的问题。
另外你用仿真器 注意,经常随意打断点 弄得不好的话 文件容易损坏。停止运行的时候 最好unfount
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 17:01 , Processed in 0.262952 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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