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

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

[复制链接]
STMCU小助手 发布时间:2021-12-15 11:00
关于STM32F7使用SDMMC外设移植FatFs遇到f_mount 挂载成功,而f_open 函数未运行的解决方法
, S( b, a0 J, ~本文开发环境:
% \  ]% j8 q  w0 N$ q9 d, X( C1 S[ IDE环境:Keil_MDK_5.28 ]
+ ~. F: Q4 Q0 J  [: R; Q[ MCU型号:STM32F723 ]
6 N% j$ X, q$ e3 E$ s# H这是我在main()函数内的代码,完成SDMMC和FatFs的初始化后打印SD卡的信息及操作步骤的反馈信息,如果正常的话应该会在SDCard里新建一个test.txt的文件;
! ^% K9 y! G& h- F% q0 A) y$ |( r5 N5 @" X
20200817142826202.png

+ ]7 y# E- W/ {, S. l( U1 S7 H6 i$ y# @# c/ X9 [- J5 J
但事实上打印出来是这样:" t0 ~# ]$ S! A

2 x5 f* X( M) c4 D, c  o* D
20200817134753774.png
! {2 n8 G: Y- R* @0 V& g" _
$ p6 p' o  G. z6 c$ h: S( [" B* y- M0 b" A3 m
挂载成功后,f_open函数没有正常运行,(没有打印Code值),在Fatfs初始化函数中设置打印看程序是否运行0 ]! W# a& ?1 \  O; f# L

$ }* H/ f" M. ^, G4 A' f) L4 k
20200817140600940.png
  V9 x+ p* m* z, W) b7 K. H. ~0 ^

3 Q0 ^4 s' y- {/ h发现没什么卵用,最后通过仿真发现代码运行到这里卡死:
& }5 _; w/ T6 M& E4 c  u: \也就是HAL库文件下的stm32f7xx_hal_sd.c的SD_FindSCR(SD_HandleTypeDef *hsd, uint32_t *pSCR)函数下
: z1 |; Y: h) g% `3 ?6 A, {( j
. p* {0 K1 Z& _1 g' Z
2020081713560560.png

1 _7 B5 V0 |, ]" d3 K/ ?5 i
$ {' r( P6 c. h1 Z  T5 y. [最后发现问题出在SDMMC的初始化函数中,下面这是没能正常工作的代码:
# N% o/ b4 a3 _! L: i* D" z1 x7 E. N
20200817135302572.png

& e. f/ k$ r# ~9 H. G" F+ S/ E2 H" ~7 P5 {0 q& S- N) e/ ]
下面这个是修改过后的代码:0 c8 d4 Y0 a, r

8 _( \% x, T+ B
20200817135430143.png
& r; f* P6 Z. a/ }- I2 B* J

3 E6 s1 v8 ^5 P/ y9 `在HAL_SD_Init()初始化之前需要将BusWide设置为1位宽度,在SD的完成初始化后再将位宽设置为4位,重新编译,下载,实验现象:
: i+ c5 u1 k8 A4 N, q
2 f2 V& k: X& Q. t
20200817140145668.png
3 _3 }" `5 ?* G
9 T9 A5 ^% \' H8 L7 m1 S1 n
查看内存卡内是否新建了test.txt文件0 W  X0 H- m9 z& Y

4 p+ e1 n: z- m' U! ^
20200817142739106.png

4 @! ^2 a5 b# X3 {8 h3 _5 E  k
创建文件成功,实验正常;( ~9 k; `* G" ~3 y0 F. t
肝了一天两夜,好在问题发现了,先记个笔记,怕以后再用到的时候又出现这个问题,也希望对卡在这里的人有些帮助;
# h4 ~9 ~3 A$ w# ]5 N9 N' _至于这个问题好像是SD的规范吧,必须要设置为1位,初始化后为4位,当然你也可以一直用1位没什么影响,这个下去在学习学习!0 \+ c: e! j6 G
3 f1 \+ n9 c- B
" Z; G8 E+ @0 F/ }

5 x3 M, N  G. g
收藏 评论0 发布时间:2021-12-15 11:00

举报

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