查看: 3110|回复: 0

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

[复制链接]
  • TA的每日心情
    奋斗
    2021-7-30 11:40
  • 签到天数: 1792 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2018-3-13 12:19:25 | 显示全部楼层 |阅读模式
    分享到:
    实现了SD卡的加载,于是继续实现文件的打开
    SD卡里面有个data.txt文件,其内容是
    123     
    abc
    下面要实现对文件的打开操作
    在main函数中添加如下代码
        sta = f_open(&fil,"data.txt",FA_OPEN_ALWAYS | FA_READ);   
        if(sta)
            printf("SD Card open fail\r\n");
        else
           printf("SD Card open\r\n");
    很顺利,没有打印fail

    下面开始实现read文件,添加如下代码

    sta = f_read(&fil, buffer, 1, &br);
            if (sta == FR_OK )  
            {  
               printf("\r\n f_read() ok .. \r\n");

                for(len =0;len<br;len++)
                    printf("%c",buffer[len]);

            }else{  
                printf("\r\n f_read() fail .. \r\n");     
            }
    输出结果是
    f_read() ok ..
    1
    没有完全读完文件内容
    仔细看了f_read,每次只能返回1个字符,于是在外面加个for循环,问题解决
      for(t=0;t<512;t++)
        {
            sta = f_read(&fil, buffer, 1, &br);
            if (sta == FR_OK )  
            {  
    //            printf("\r\n f_read() ok .. \r\n");

                for(len =0;len<br;len++)
                    printf("%c",buffer[len]);

            }else{  
                printf("\r\n f_read() fail .. \r\n");     
            }
        }
    打印结果见下图








                                            发帖与2018年3月13日
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-27 01:35 , Processed in 0.104059 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.