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

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

[复制链接]
STMCU小助手 发布时间:2021-12-15 11:00
关于STM32F7使用SDMMC外设移植FatFs遇到f_mount 挂载成功,而f_open 函数未运行的解决方法
! j, P$ E" J1 q1 \本文开发环境:' g8 H- a4 U# E- l2 S+ x
[ IDE环境:Keil_MDK_5.28 ]
& o& I2 t9 S3 t[ MCU型号:STM32F723 ]
: B$ W& r. X: }+ d这是我在main()函数内的代码,完成SDMMC和FatFs的初始化后打印SD卡的信息及操作步骤的反馈信息,如果正常的话应该会在SDCard里新建一个test.txt的文件;. X* v& |- V% i4 b9 ?

5 O4 L. e* c! ~6 }. S* ?* b
20200817142826202.png
& r3 G7 X& S" A& \5 b

( g1 u$ c( q6 }但事实上打印出来是这样:" v& A' `/ F* K+ P& }
/ r5 O$ g0 K' S2 J  g6 d" N% _
20200817134753774.png
3 A5 g9 a: u% L
. Y! {" R: `* ^) W  U
挂载成功后,f_open函数没有正常运行,(没有打印Code值),在Fatfs初始化函数中设置打印看程序是否运行! r. p! ~' f5 ^6 [4 I: X

4 E; K- d! A+ V( S" I
20200817140600940.png
, R$ O& J+ M* S- u. ~
4 Y0 O- N8 Y) @
发现没什么卵用,最后通过仿真发现代码运行到这里卡死:+ ~, `2 r1 }+ C4 I1 O  Y7 ?+ B
也就是HAL库文件下的stm32f7xx_hal_sd.c的SD_FindSCR(SD_HandleTypeDef *hsd, uint32_t *pSCR)函数下
, e+ J5 @; h: Q) c; U, e/ c7 P% h: p+ L& U; T: I6 z- g
2020081713560560.png

8 j1 g8 C) O" N+ Z  f  Q
0 [. E4 v1 ?0 g- q) r最后发现问题出在SDMMC的初始化函数中,下面这是没能正常工作的代码:0 |% t- u$ Q+ V9 ^3 E
7 {; R9 ]) M; B; k
20200817135302572.png
$ _& C0 a2 c) z! L( W( k

. f" _1 i" A* w% D. A5 U下面这个是修改过后的代码:
* r& X9 g- a8 `' u* f( ~. ]: o( g0 g7 R% [7 ^
20200817135430143.png

0 W& a) e8 n1 R; Y/ {7 Q: X) p: C" q; |2 i0 i6 D1 r6 Y
在HAL_SD_Init()初始化之前需要将BusWide设置为1位宽度,在SD的完成初始化后再将位宽设置为4位,重新编译,下载,实验现象:  @1 E& j9 N7 l  v: `0 c
8 h6 U5 f" M0 Y! O: g
20200817140145668.png

  `0 B6 X8 z$ i# m7 e3 q/ N: ]2 [% g! \
查看内存卡内是否新建了test.txt文件
9 w; S: d$ ^) U1 _' w, N8 n9 o; x3 a# I' j! ^( p
20200817142739106.png
7 h0 `$ A$ ], S$ B6 }# m

; }, `+ w+ W5 c创建文件成功,实验正常;/ q# ~6 g7 I5 M+ Q0 f. q2 J
肝了一天两夜,好在问题发现了,先记个笔记,怕以后再用到的时候又出现这个问题,也希望对卡在这里的人有些帮助;" a7 O7 H4 X1 u, Z/ {; z
至于这个问题好像是SD的规范吧,必须要设置为1位,初始化后为4位,当然你也可以一直用1位没什么影响,这个下去在学习学习!
+ n: |2 v# N3 \6 b0 ^& V2 q
7 G! K3 R6 }( g( e6 N% E9 q
. ]5 B! K7 T- z
" f! E/ Q/ B& a9 I! k9 ]
收藏 评论0 发布时间:2021-12-15 11:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版