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

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

[复制链接]
STMCU小助手 发布时间:2021-12-15 11:00
关于STM32F7使用SDMMC外设移植FatFs遇到f_mount 挂载成功,而f_open 函数未运行的解决方法( X: B0 O, m9 a" |# a
本文开发环境:
" v+ L0 w  I  q[ IDE环境:Keil_MDK_5.28 ], ]( u2 W1 p" L
[ MCU型号:STM32F723 ]
* M- S2 U4 T  R9 [" ?9 L4 d  v8 _这是我在main()函数内的代码,完成SDMMC和FatFs的初始化后打印SD卡的信息及操作步骤的反馈信息,如果正常的话应该会在SDCard里新建一个test.txt的文件;$ X* U% _! p% G" I
& a  g+ U$ H( w( m4 w  T. m
20200817142826202.png

8 d, b  k4 |% [7 q5 v  u1 u# S  k& y8 C
但事实上打印出来是这样:
: l6 S, G8 h, d# Y/ y" ~- ^. p2 X4 `( C* w: B
20200817134753774.png

  M0 ?0 e5 B/ L* @/ |5 e, F, [" Y  v1 g) d1 n' p
挂载成功后,f_open函数没有正常运行,(没有打印Code值),在Fatfs初始化函数中设置打印看程序是否运行, y' N$ a6 W( F' b+ `: D" c
8 x; W, y& ^7 j) [8 h4 w0 [  Q6 _/ G5 L! J
20200817140600940.png
! ^8 f: d4 H' o
, ~0 ~6 `- Q  }  Q+ m' B
发现没什么卵用,最后通过仿真发现代码运行到这里卡死:' s% X, P, u6 C; ^: M
也就是HAL库文件下的stm32f7xx_hal_sd.c的SD_FindSCR(SD_HandleTypeDef *hsd, uint32_t *pSCR)函数下6 K# E/ D3 j( L& ]% i4 n% x

# A% S) @  [/ a$ G) M$ s
2020081713560560.png
9 G" v- {9 e+ A! _2 z$ b. y( k
% ~% s. ]0 Y" h  F& X7 a. Z( Q
最后发现问题出在SDMMC的初始化函数中,下面这是没能正常工作的代码:
5 A8 v/ O$ B* R" }2 t; F2 j5 X8 F0 T$ Y' c2 J8 B
20200817135302572.png
; s& c- S- ^. j1 ?! Y( C' e
) ^4 C5 T6 Z- ?7 x( U* P: [
下面这个是修改过后的代码:
0 j: q" k. n& W" p  f
, ?. e' a; D. }) V" h
20200817135430143.png

' M* Z; }. t; P# t; x8 `7 Q2 [8 ^% N
在HAL_SD_Init()初始化之前需要将BusWide设置为1位宽度,在SD的完成初始化后再将位宽设置为4位,重新编译,下载,实验现象:- L; J9 A3 L: Z$ R  o- {4 e
, p1 q; {0 Z& I3 f! n7 d
20200817140145668.png
" L: y- e. ]# M. G

) u( T1 j. K0 y' T. {8 c查看内存卡内是否新建了test.txt文件
. N' A# J+ z  s1 ?" U% J
# i- w4 }. h, d5 R$ T6 g
20200817142739106.png
6 e0 @) D8 d8 l4 j
' h; F! X  u7 Q4 [
创建文件成功,实验正常;
' V0 F0 l8 o7 m$ d: M8 B肝了一天两夜,好在问题发现了,先记个笔记,怕以后再用到的时候又出现这个问题,也希望对卡在这里的人有些帮助;) x" R* K" Y& L' H
至于这个问题好像是SD的规范吧,必须要设置为1位,初始化后为4位,当然你也可以一直用1位没什么影响,这个下去在学习学习!6 j& B0 N, y2 {/ P+ c, T( m

$ s+ v) O5 a  c! L$ t& z  c# m+ O* |5 }( O- l

8 _9 c- n: S  r) r, L
收藏 评论0 发布时间:2021-12-15 11:00

举报

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