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

【经验分享】[SDCard_FatFs笔记][一]STM32F7使用SDMMC外设移植FatFs遇到f_mount挂载成功,而f_open函数未运行的解决方法

[复制链接]
STMCU小助手 发布时间:2021-12-15 11:00
关于STM32F7使用SDMMC外设移植FatFs遇到f_mount 挂载成功,而f_open 函数未运行的解决方法
$ j. Y7 V' N$ ^8 t. s本文开发环境:* t" V* H/ M' z0 f: T
[ IDE环境:Keil_MDK_5.28 ]3 Z, k: l9 O7 X
[ MCU型号:STM32F723 ]
7 ~/ s  \  U$ y( h1 _. m3 @5 J这是我在main()函数内的代码,完成SDMMC和FatFs的初始化后打印SD卡的信息及操作步骤的反馈信息,如果正常的话应该会在SDCard里新建一个test.txt的文件;# l0 h2 O/ e2 Y) A

" p' d1 U2 X8 c4 P2 _$ a, V/ u
20200817142826202.png

8 J5 J* J: n$ W3 R
. Q3 P* n2 W) e3 M8 |' E3 ^3 G# h但事实上打印出来是这样:$ @: H+ G3 r3 f( \8 m5 w6 T

! N3 |. Q( |7 V% D
20200817134753774.png
  i; t0 H) a7 S  ^: V

3 J2 S& P- z( C+ _% I挂载成功后,f_open函数没有正常运行,(没有打印Code值),在Fatfs初始化函数中设置打印看程序是否运行- J0 I: H/ U" S: O- G+ h

% d6 x7 h% P5 Y' i
20200817140600940.png
0 m, g+ E1 g2 h+ [& T

0 b1 R( @2 H# f2 o6 m' K发现没什么卵用,最后通过仿真发现代码运行到这里卡死:
8 A) a% q4 F2 T% S* N也就是HAL库文件下的stm32f7xx_hal_sd.c的SD_FindSCR(SD_HandleTypeDef *hsd, uint32_t *pSCR)函数下
; w( b* {/ B( b9 T6 }* T& _8 c# Q8 s' O' n7 R, h6 [
2020081713560560.png

' G8 a+ N) e9 }
; ]( Y6 L; y" ]* D7 ]最后发现问题出在SDMMC的初始化函数中,下面这是没能正常工作的代码:
' i8 b. `, V/ A0 G% Z. I/ k
. x' h# G% [3 x# Z, M- N* R; C
20200817135302572.png

" N$ l1 b' K5 @; b5 ]' C4 h) h6 P6 y: ^& ^; [2 J
下面这个是修改过后的代码:
- ~. ^4 I5 _  v' P0 \6 K. G" B% h$ `4 `4 u- x
20200817135430143.png

; f; T  [- B4 @! ~6 r3 D' ?7 |
5 K# Q5 Y: A" U在HAL_SD_Init()初始化之前需要将BusWide设置为1位宽度,在SD的完成初始化后再将位宽设置为4位,重新编译,下载,实验现象:
* C5 `9 {0 R$ d. O
* K! F. y: Q( Y& C3 L! ]
20200817140145668.png

* k9 J2 R  ~0 C7 b% ~& I  Z$ ?# F
# i, u/ h7 V5 B查看内存卡内是否新建了test.txt文件
& U* I- [  K& c: J+ c! C- F" R+ z
$ r  H& E* K$ j) J* {0 J) g
20200817142739106.png
: `! Q) w3 b  }0 d: a
8 y+ L1 y9 R0 p2 G3 W& b
创建文件成功,实验正常;
) z2 M7 B. u; W肝了一天两夜,好在问题发现了,先记个笔记,怕以后再用到的时候又出现这个问题,也希望对卡在这里的人有些帮助;0 k8 t- N0 e" D* P
至于这个问题好像是SD的规范吧,必须要设置为1位,初始化后为4位,当然你也可以一直用1位没什么影响,这个下去在学习学习!4 p4 E  F) P8 c' c( C

' n# W3 A8 `, q
1 W4 m9 @/ j) ]) B; I" }& P) u4 }4 }+ s% Z! R$ [2 Y; h
收藏 评论0 发布时间:2021-12-15 11:00

举报

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