本帖最后由 stary666 于 2018-3-13 13:25 编辑 3 @, d. D4 m0 s3 ]; \. D 之前实现了read文件,继续实现写功能,添加如下代码len = 512; sta = f_open(&fil,"fatfs.txt",FA_OPEN_ALWAYS | FA_WRITE); while (sta) {, q2 Y( d9 k j/ X9 @ printf("open file error! \n\t error code is %d\n\t",sta); delay_ms(500);+ Q7 B6 x# F" A3 f1 j& X }5 [# Z9 l9 B% }+ J! o8 s5 q printf("\r\nBegin Write file...\r\n"); printf("Write data len:%d\r\n",len); / H4 [) P# {) @- _5 j. O2 y sta=f_write(&fil,dat,len,&br); if(sta)4 t$ B9 e) y+ |+ ~& g2 [ { printf("Write Error:%d\r\n",sta); , l% U5 Y* G5 ?. [: |+ g; H" J }else printf("Writed data len:%d\r\n",br);4 X* H1 g- q! [7 m printf("Write data over.\r\n");& {$ ^$ q* B3 N1 m3 v5 Z f_close(&fil);, Z3 ^; F3 T. f: J- y! ?: N2 M sta = f_open(&fil,"fatfs.txt",FA_OPEN_ALWAYS | FA_READ); if(sta) printf("SD Card open fail\r\n"); else printf("SD Card open\r\n"); for(t=0;t<512;t++), e: C7 x0 g7 _ { sta = f_read(&fil, buffer, 1, &br);- X* X/ q! H1 `' m$ R( Z if (sta == FR_OK ) ) V7 ^! {" C$ d6 S { // printf("\r\n f_read() ok .. \r\n"); for(len =0;len<br;len++)9 h: v- {9 N4 d. C. r# F. I printf("%c",buffer[len]); }else{ printf("\r\n f_read() fail .. \r\n"); } } f_close(&fil);7 V6 s+ d0 c& j+ Y, @$ X 把需要的变量定义了,就可以编译执行了,结果见图/ B1 ?' W* J5 Y$ L! y" V P* r* `, X7 Z0 t+ n) j$ u, d 很是兴奋啊,搞定了读写功能,可以像操作Windows一样简单了, 1 t' i7 U4 ]6 Q8 m! Z 发帖与2018年3月13日6 u7 y( K( J3 s' Q" w |
恭喜恭喜,感谢分享 |