实现了SD卡的加载,于是继续实现文件的打开 SD卡里面有个data.txt文件,其内容是 123 abc6 h0 K" v0 v5 q. [ |5 ~ 下面要实现对文件的打开操作8 ^3 n3 Y! G8 { 在main函数中添加如下代码' y' o+ r9 l& \ sta = f_open(&fil,"data.txt",FA_OPEN_ALWAYS | FA_READ); if(sta)! z# |7 o+ h, C; h printf("SD Card open fail\r\n");+ {* { [8 n: V4 X' p5 w0 O8 ] else" I/ v0 [: G/ R+ u# t printf("SD Card open\r\n");- y% Q D4 M! _9 J6 G2 u% E 很顺利,没有打印fail& W" W( V3 c+ a( r7 @& o7 E; P7 J + Y' e- Q, A* \8 X; Q( B# L2 d 下面开始实现read文件,添加如下代码; ~% q# v3 h v' k. H4 t3 d0 P sta = f_read(&fil, buffer, 1, &br);* A+ N1 h4 H, O8 u& \+ } if (sta == FR_OK ) , P+ C& C d s5 X1 t- { { " |2 ?! W/ [3 |- y! Y printf("\r\n f_read() ok .. \r\n"); , e! [, n& V. t for(len =0;len<br;len++) printf("%c",buffer[len]); 8 X: \% P9 D6 {, v2 s; A }else{ printf("\r\n f_read() fail .. \r\n"); } 输出结果是 f_read() ok ..6 ]2 {# s' B' q% b; m. x& s 11 {9 e; o! [9 N; i5 ^8 ?4 C2 q 没有完全读完文件内容1 O0 a6 Q1 L+ |: E% i( T4 k 仔细看了f_read,每次只能返回1个字符,于是在外面加个for循环,问题解决" c6 K8 `; u/ v9 E1 Y T for(t=0;t<512;t++)0 J( _4 y$ g4 M% K/ | { sta = f_read(&fil, buffer, 1, &br); if (sta == FR_OK ) $ W: ~ X( K6 Q) o5 _+ i { ! c v% f9 @: c' Z% n // printf("\r\n f_read() ok .. \r\n");" x, @# ~- E, K. U+ s ' Q5 ^" e* Q9 H( q# l2 | for(len =0;len<br;len++) printf("%c",buffer[len]); / c" }7 o! l6 F. f* _+ r }else{ 6 P5 a8 H* y+ z0 N' C+ m" E printf("\r\n f_read() fail .. \r\n"); ' }( ] Q( H, n/ A1 s } ; e X3 q* b0 }( v. P } 打印结果见下图5 r& ~' v0 e9 Y; ?, C % D- J0 g% m: O5 R/ c 4 Y. R& W0 X _/ ` e: k D, Q . Y0 `: H! ?$ \7 y ( l; J' N/ \5 _7 y+ p9 ^ 0 c! `' S4 I1 B4 e8 s5 l 发帖与2018年3月13日8 P1 a+ y& z8 L7 u |