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

stm32f769 寄存器配置SD卡---移植fatfs--实现文件读写

[复制链接]
stary666 发布时间:2018-3-13 11:38
本帖最后由 stary666 于 2018-3-13 13:25 编辑 + m3 ^8 _' X) h, x0 {' `
' T( |- [' q. e1 ^; z+ I
之前实现了read文件,继续实现写功能,添加如下代码len = 512;
. i# _& u, h( S2 k( N' M9 g    sta = f_open(&fil,"fatfs.txt",FA_OPEN_ALWAYS | FA_WRITE);
2 R/ L; K- G% B- ]7 w2 w( ^    while (sta)5 p% b2 O% b/ m6 g
        {
! R' R  M, \7 s5 Z5 M                printf("open file error! \n\t error code is %d\n\t",sta);
3 P, m3 K6 n& a1 Y                delay_ms(500);* I6 u5 J2 _- ]4 ]- C# {
        }
5 J! Z/ ~2 ^/ `7 b- s& M" o        printf("\r\nBegin Write file...\r\n");! l4 L) N" p5 X0 u' n( `. r
        printf("Write data len:%d\r\n",len);        
5 f: G+ S0 X* A/ [* I2 u1 I        sta=f_write(&fil,dat,len,&br);7 M9 p" |  k$ {0 c9 A
        if(sta)
( S* u+ L5 T; z8 r  g4 H        {/ i! A6 v% i6 G, _
                printf("Write Error:%d\r\n",sta);   
& S' U/ `  j5 P) ^7 v! ^3 `( H        }else printf("Writed data len:%d\r\n",br);
3 _* Q9 D1 ~3 K4 z        printf("Write data over.\r\n");
: x( z- J$ @) L: H$ _0 Z& Y' N$ k        f_close(&fil);
+ C/ H/ j! y' L    sta = f_open(&fil,"fatfs.txt",FA_OPEN_ALWAYS | FA_READ);   
4 S, m# h1 k' Z' X- m+ @" y9 P    if(sta)
6 ^' Q$ i1 y3 u  u! E        printf("SD Card open fail\r\n");
0 z. h: s( M; j    else4 ?' p/ ^2 m( Z* M# A9 T. k- A
       printf("SD Card open\r\n");
7 J8 @1 M6 M6 r0 C    for(t=0;t<512;t++)
( @* B) [" J7 h- H1 ~    {9 A: B7 E% M7 `1 A
        sta = f_read(&fil, buffer, 1, &br);1 s  i( n+ n1 _: y: c, f# x0 C
        if (sta == FR_OK )  
" `$ h( x+ v9 G' k        {  
: N) T+ v7 F/ @& n//            printf("\r\n f_read() ok .. \r\n");
1 r  U* z' ^- G+ Y4 V
/ {% e* ]1 p' ?. @% E            for(len =0;len<br;len++)
9 ~) y4 C) A+ o: M) s  m4 o                printf("%c",buffer[len]);, G; C  T) @! e
0 D: ?- U; A, w( u
        }else{  
% ]: Y. Z3 g+ B# q8 {# X* {( f            printf("\r\n f_read() fail .. \r\n");     
0 E8 o5 r) V! c5 L9 V        }
2 d' G8 v; g' Z3 U9 _    }
: M! w* }7 U8 s* k9 Q- p    f_close(&fil);; E2 R9 p! Y# H* C' Y2 `, h
把需要的变量定义了,就可以编译执行了,结果见图$ M+ Y  r5 }& q! O1 t
. w9 {" Z' ~5 M( W! C. x0 U$ ?
& _, C2 z( J2 l+ G$ @
很是兴奋啊,搞定了读写功能,可以像操作Windows一样简单了,) N7 W& R& M3 ]" k3 |' i

* [# {2 ^. B9 b3 Y7 i4 Y$ k% l& z+ t
                          发帖与2018年3月13日
; T3 A2 w# y9 }: k1 q) V: E+ v

评分

参与人数 1 ST金币 +6 收起 理由
MrJiu + 6 赞一个!

查看全部评分

收藏 1 评论2 发布时间:2018-3-13 11:38

举报

2个回答
CC4 回答时间:2018-3-13 11:41:19
恭喜恭喜,感谢分享
stary666 回答时间:2018-3-13 12:15:23

所属标签

相似分享

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