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

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

[复制链接]
STMCU小助手 发布时间:2021-12-15 11:00
关于STM32F7使用SDMMC外设移植FatFs遇到f_mount 挂载成功,而f_open 函数未运行的解决方法: Z: h+ B9 I, s) s+ U3 A
本文开发环境:
) I7 c5 B: b0 s0 |- L& A  b7 T( B& h[ IDE环境:Keil_MDK_5.28 ]- {" Z2 I" E) [) c
[ MCU型号:STM32F723 ]: d  m$ [# ^3 Y" d7 }, q
这是我在main()函数内的代码,完成SDMMC和FatFs的初始化后打印SD卡的信息及操作步骤的反馈信息,如果正常的话应该会在SDCard里新建一个test.txt的文件;
6 Q9 z$ f* i* [+ o# z2 L. T( `5 V0 ?
20200817142826202.png

5 D: _5 V9 H; W0 ^# B4 i, Z  y8 r/ q2 D/ @
但事实上打印出来是这样:- V" E4 h- Z, A1 W4 b

( P4 I  [5 U" N/ Y0 N4 [
20200817134753774.png

8 d" u7 f: i% h; S) g- d9 b- ]" A9 k( ^
挂载成功后,f_open函数没有正常运行,(没有打印Code值),在Fatfs初始化函数中设置打印看程序是否运行
4 ]% x, o: H) G9 c' r5 g2 F* b  U+ k$ r9 C$ P! H1 b2 }. ~7 ?( `
20200817140600940.png

1 q# Z5 a$ g4 h% z$ E6 M
# A. k* T, ~# L. T) R$ g' l- C& `发现没什么卵用,最后通过仿真发现代码运行到这里卡死:
* Q/ L0 F, f4 g也就是HAL库文件下的stm32f7xx_hal_sd.c的SD_FindSCR(SD_HandleTypeDef *hsd, uint32_t *pSCR)函数下
' M- \4 h; N0 P- K* A5 g8 T6 z  |/ P9 g" ~; N
2020081713560560.png
6 u' D. M3 Q( k- B5 s) P9 t
  e, ~% f- l- B  o/ C% _4 X  b
最后发现问题出在SDMMC的初始化函数中,下面这是没能正常工作的代码:8 p( W2 Q( Z4 s, E4 H7 |

3 A& E: S0 n1 V" p; {( }
20200817135302572.png
7 Z0 |2 |* e( v; Y( o
! H0 c" n! i# ~8 [
下面这个是修改过后的代码:5 y( Y& D& ]0 h& C, I
. @& J+ {( v$ `% w! A: b
20200817135430143.png

& ~- ^2 x9 t1 {: [% g; q0 R
- B3 c7 p# C, f/ S- t5 f) Q1 c在HAL_SD_Init()初始化之前需要将BusWide设置为1位宽度,在SD的完成初始化后再将位宽设置为4位,重新编译,下载,实验现象:
/ F; ~* z4 S% r/ A- P. t. d7 |1 O
20200817140145668.png
+ F" k8 u: h5 T7 `0 h, l
( p6 w1 O; I$ }7 n8 }6 k
查看内存卡内是否新建了test.txt文件
% r( [1 W+ F- ~$ W+ z; m7 t& D2 y3 e* d( ^
20200817142739106.png
* o4 ]. b: C4 |. H5 c

! G8 S' e! V7 B创建文件成功,实验正常;8 U: G8 S- `. A! a0 _% @' i
肝了一天两夜,好在问题发现了,先记个笔记,怕以后再用到的时候又出现这个问题,也希望对卡在这里的人有些帮助;
* `2 w  H7 c6 F4 Q至于这个问题好像是SD的规范吧,必须要设置为1位,初始化后为4位,当然你也可以一直用1位没什么影响,这个下去在学习学习!
. o" M: p- t- r+ B3 d3 J( X; u* @5 W8 B5 @. i2 N- G) w
: \- s, g0 F- J# S" D
7 Q% L! a& @1 d2 Q- h' z
收藏 评论0 发布时间:2021-12-15 11:00

举报

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