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

stm32f769 寄存器配置SD卡---移植fatfs--实现文件read操作

[复制链接]
stary666 发布时间:2018-3-13 11:38
实现了SD卡的加载,于是继续实现文件的打开
0 C. x' E0 e' JSD卡里面有个data.txt文件,其内容是% \5 z9 N7 Y8 Y9 O. `  j& `+ D) n
123     
1 Z/ z4 i* {# H3 F" s( j3 Kabc! p+ F" ^6 H) g0 j( s
下面要实现对文件的打开操作
( T% a8 `' p5 A在main函数中添加如下代码0 ?  F0 y/ k( u% R% ]! d- b
    sta = f_open(&fil,"data.txt",FA_OPEN_ALWAYS | FA_READ);   
: N. A' I* m/ |: Y) O- L- ?    if(sta)! I, R0 T6 k: _7 k
        printf("SD Card open fail\r\n");
9 b7 p# f; \4 u7 o: j. |% S    else. J# W) Y# Z* h/ t# I$ j
       printf("SD Card open\r\n");
9 b  m$ T" O$ Y1 Z$ C很顺利,没有打印fail
/ k0 ^$ l1 E( r+ c7 A% J3 D8 h) s
. S* o1 ?, m- M  Z  a+ [8 K下面开始实现read文件,添加如下代码
2 B- y7 _$ B: R8 v& T3 r; \( Q+ B2 i, M6 t3 A
sta = f_read(&fil, buffer, 1, &br);
% p6 v$ w# w4 g/ Q6 [; T* d        if (sta == FR_OK )  - r5 f0 ^6 |' P" n
        {  
0 _  g8 c, Q( p1 U. {           printf("\r\n f_read() ok .. \r\n");2 Q1 Q$ ~. d) I% a

" G( J2 C+ x1 E: M" K7 \1 Z, T            for(len =0;len<br;len++): k7 j8 L0 F% M: S# K% q6 \
                printf("%c",buffer[len]);- J1 j5 m5 n. }" I! B
. {1 i3 s" B4 y8 A0 A7 M
        }else{  
! C# \) p1 i! T) l) n! }! l+ W            printf("\r\n f_read() fail .. \r\n");     
: ^" z! }3 G3 D        }
1 U: R. b+ ^( M' G* P; w' h; o输出结果是5 V; X# v5 i" U/ z, ~8 v
f_read() ok ..
, P- _' u3 B3 f3 U. }1
0 z$ ?% O% b  |4 R& M3 T% p没有完全读完文件内容" b4 _6 ^4 U& w, Z
仔细看了f_read,每次只能返回1个字符,于是在外面加个for循环,问题解决
; d! Z' p, A2 A6 r  for(t=0;t<512;t++)
1 i2 T: ~- _/ g    {4 z& D( {3 @3 J# z" U  f
        sta = f_read(&fil, buffer, 1, &br);
& B! k# j: Z% ?9 X7 r. V  i6 }        if (sta == FR_OK )  1 b! t( c; {) c$ _/ \( a
        {  
7 X& d1 Z7 M  C8 x" C! R( I. g' P; v& `//            printf("\r\n f_read() ok .. \r\n");; W% A( c5 |  x4 y
" |. ^/ T* s) |9 v  `
            for(len =0;len<br;len++)' I0 V7 a& ?2 |$ f
                printf("%c",buffer[len]);
; p+ G  h/ X- O# d" W8 F+ |2 B) g+ r
        }else{  
" ~% e5 P  Q/ _, U0 a5 Z            printf("\r\n f_read() fail .. \r\n");     
" B+ y% y( _& e5 ~7 O4 Z        }
& [1 C4 C  y& ]    }
+ a+ b! s2 @' N5 A! ]9 k! a+ [打印结果见下图8 G. y: I, p+ x

- t) ?9 Q  [: _5 T3 s$ E, {6 I- C* _1 w7 k9 X

: J5 m3 |  h5 S( g5 O' p4 L
5 a: H* ^% m1 s6 m: a

* y/ F* |1 ]) z# H

& s/ e! K( L* d) w0 q3 U* l3 ]; {& O; {
. G% y3 m: d& b3 W  K) k9 U
                                        发帖与2018年3月13日
" x  W$ L6 G* [; }# G+ g8 ?* O, @/ l
收藏 评论0 发布时间:2018-3-13 11:38

举报

0个回答

所属标签

相似分享

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