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

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

[复制链接]
stary666 发布时间:2018-3-13 11:38
实现了SD卡的加载,于是继续实现文件的打开
% e9 f1 c1 c8 k" g2 TSD卡里面有个data.txt文件,其内容是
+ p( f4 T* S' g2 {+ S" z123     5 @2 v: i6 V, b4 f: g
abc
- F, Z1 N6 _5 p+ ~0 ]' j% W* p* U下面要实现对文件的打开操作1 ^6 ~6 W$ }5 A) f
在main函数中添加如下代码2 L( a  u2 }. l+ V, H5 j' }3 g
    sta = f_open(&fil,"data.txt",FA_OPEN_ALWAYS | FA_READ);   5 Z4 ^' l/ r# r# K' E2 @
    if(sta)
6 D* o* o) K  f6 X- W2 s9 E        printf("SD Card open fail\r\n");; I* r9 h0 Q7 `; M  T
    else. E1 U4 Z* Z+ Z8 Y- ^0 ?
       printf("SD Card open\r\n");
5 H8 j" x! z, f$ U$ i很顺利,没有打印fail$ o; X/ H! z! m' _1 C$ G0 g$ g2 x. C
5 z: C& g0 g# O, E$ B. `
下面开始实现read文件,添加如下代码, y, h  F% C& ]* F+ l
! L6 S& A5 T- R2 j( U6 c+ a. z, f  @
sta = f_read(&fil, buffer, 1, &br);
5 Z3 V7 }$ v% `        if (sta == FR_OK )  . Q& p# J% [  I4 p! D% b9 B
        {  
. \' Y3 O7 O/ I5 A           printf("\r\n f_read() ok .. \r\n");8 n4 x, ^# @( C4 ~7 G0 p* m* m

5 x) p% c% }/ x+ Z+ |  `            for(len =0;len<br;len++)) r9 P& {0 Y. I4 H5 w9 b
                printf("%c",buffer[len]);( l. B# I" @6 I% ~
4 G6 A- M; [2 R: M3 B0 E! W, b
        }else{  
( k6 V% K- {& D9 y' E; O' A            printf("\r\n f_read() fail .. \r\n");     ! }3 _2 m1 X( C+ G( T' Z
        }
; G- d6 V4 |' D输出结果是
/ D+ H* [+ y! N: E+ S5 X% Wf_read() ok ..
1 H5 V) ]" o, o8 `0 r1
4 E" H) X! o6 m6 l没有完全读完文件内容
' q2 @! }: t1 B' a, I8 k' T& S仔细看了f_read,每次只能返回1个字符,于是在外面加个for循环,问题解决3 z7 Q4 j: C) k/ R
  for(t=0;t<512;t++): q4 u8 f' y" J
    {2 X* `  C4 k1 q3 u; q3 ?3 T2 N! L
        sta = f_read(&fil, buffer, 1, &br);
0 K! {  B' W0 A. K, F3 _        if (sta == FR_OK )  9 ^0 e7 m6 h% }  z7 i
        {  : p5 R, j5 F9 U! U! I$ R
//            printf("\r\n f_read() ok .. \r\n");
" S. M+ m  p% F
/ [* z, J7 o- B- _            for(len =0;len<br;len++)
8 f/ Z# N9 w$ p8 ~8 _9 b                printf("%c",buffer[len]);; p8 D6 H% |$ R* E. \+ ]3 ^
- a" \8 y6 V% |
        }else{  % c- F- ^& v2 N% s' y
            printf("\r\n f_read() fail .. \r\n");     / m" w! `: F$ X1 o1 J$ p# L
        } 5 `* a9 B' N! g9 f7 r1 }4 ~  u
    }
# O* ]  K6 X7 t* P# e) c打印结果见下图: @- h- x8 p: w0 W! W
$ @" @" w: t8 v; a
" V4 C6 m- E9 g: M# }# o
* E* A) ]5 V# u: b+ |
6 A  N8 k  ]$ o/ W3 j3 I
( r' b' U# G; ^+ N

$ U6 {- c' B5 O
- n% |5 E& n5 |8 s
4 @  o, D  f2 @9 `/ n
                                        发帖与2018年3月13日* G* ~. N  s9 `8 P8 d
收藏 评论0 发布时间:2018-3-13 11:38

举报

0个回答

所属标签

相似分享

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