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

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

[复制链接]
STMCU小助手 发布时间:2021-12-15 11:00
关于STM32F7使用SDMMC外设移植FatFs遇到f_mount 挂载成功,而f_open 函数未运行的解决方法# y$ L, \: q: o: C
本文开发环境:$ z, B" Q# V9 `
[ IDE环境:Keil_MDK_5.28 ]9 p% \3 J4 F# L- X, {6 l) X
[ MCU型号:STM32F723 ]
/ Z* B3 V- R  S2 n7 m这是我在main()函数内的代码,完成SDMMC和FatFs的初始化后打印SD卡的信息及操作步骤的反馈信息,如果正常的话应该会在SDCard里新建一个test.txt的文件;
# B1 e3 c  `; e* g8 w3 ]3 K
8 u! V" z2 L+ B7 f6 f3 n  O( w
20200817142826202.png

0 N9 ^: Q' [9 Q% Y& z% k$ ~, P% Q+ G% ~3 S
但事实上打印出来是这样:
' v2 i2 _3 A9 {' W- y/ i0 f( m
3 R6 [* e# t$ `  O; C0 e
20200817134753774.png

. L4 t+ q+ k5 Q9 `0 R; J, `! @6 e8 @1 H* m  q
挂载成功后,f_open函数没有正常运行,(没有打印Code值),在Fatfs初始化函数中设置打印看程序是否运行
3 n% M* c0 m: @. D; F9 @* N5 L! e1 z$ \& c" _/ q8 o& U3 C
20200817140600940.png
0 L* D' w! }4 I7 L/ y; a
0 L" c1 f/ z7 r( E
发现没什么卵用,最后通过仿真发现代码运行到这里卡死:% |( ]- m# m# x' R
也就是HAL库文件下的stm32f7xx_hal_sd.c的SD_FindSCR(SD_HandleTypeDef *hsd, uint32_t *pSCR)函数下0 w+ L' B, j+ Z/ W9 r2 K" C
% P" v5 l4 _; V' y! W+ I
2020081713560560.png

# C+ ~7 c. |8 E/ q/ p9 @: }  `8 e$ E9 T( t
最后发现问题出在SDMMC的初始化函数中,下面这是没能正常工作的代码:. L/ Q, u7 ?. _

! _* L6 {9 K8 @6 Y
20200817135302572.png

- H) n# n( R+ X
' |4 F; ~. v9 V( E  u0 t下面这个是修改过后的代码:( a; ?" B" Z+ |9 m
- K( t+ T- m  d( u9 j1 f
20200817135430143.png
) P! h) L: I6 h
$ N; p1 r3 V& J) t
在HAL_SD_Init()初始化之前需要将BusWide设置为1位宽度,在SD的完成初始化后再将位宽设置为4位,重新编译,下载,实验现象:
8 F- k4 W0 e" [, \9 d
) b2 t: d* w" F
20200817140145668.png

: }" S0 d1 S5 t/ k6 j; e5 ?* C* y0 V% m4 v6 S; n8 i% X
查看内存卡内是否新建了test.txt文件# S7 \9 Y' S9 p" Y. B& g
( }- X5 ~7 U' J3 C8 s/ l3 {1 p
20200817142739106.png

% t+ F2 U) w7 W$ w$ O* q
3 f/ i& ]# k8 l# W, B$ j$ l  g& \$ n创建文件成功,实验正常;4 t) a9 w6 x# N/ ?7 @& F8 {. T
肝了一天两夜,好在问题发现了,先记个笔记,怕以后再用到的时候又出现这个问题,也希望对卡在这里的人有些帮助;
; Y9 u2 B: J! r! D至于这个问题好像是SD的规范吧,必须要设置为1位,初始化后为4位,当然你也可以一直用1位没什么影响,这个下去在学习学习!. _) p* \6 R$ `3 L/ \- {' C0 k: W
! ^. |7 f/ k& k) J; W
, d! U' M' g, D8 T3 F
/ J/ i# c8 v  G8 G" H, T% A. P1 d2 Q9 e
赞 收藏 评论0 发布时间:2021-12-15 11:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版