猪百岁 发表于 2021-3-11 17:31:16

K210入门-裸机开发(八点半)文件系统补充

## K210入门-裸机开发(八点半)文件系统补充

**开发板:K210 AIRV R3版 widora**

**开发环境:kendryte IDE 官方的**

**必须的参考文档:Standalone SDK编程指南v0.5.0,以及widora的原理图**

## 1.这集试试文件系统打开自己的文件


先读a.txt 并获取 里面的长度 v_fileinfo.fsize



然后把读到的内容打印出来



下面的代码先注释掉 单独测试这个

一条龙走起

报错了 v_fileinfo.fsize 初始化不了 我又不想用mem分配 就不管了 就用固定常量128(建议用动态分配内存 我这边不会 所以用固定的)


效果不错,都读出来了



继续读下一个文档



这边就直接读了 不获取信息了


串口打印不出来, 证明识别不了中文, 我现在暂时不知道怎么解决不能识别中文的

所以不能使用中文

## 2.那么下面就来测试下读取mp3


也是读到的,但是读出来的内容就不知道对不对了



下面对a.txt写东西(直接写 不读,等下去读卡器读)



这次不错, 写中文居然可以


把文件名都改全英文


下面读图片



读不到内容, 原因应该是获取的是8位的,但图片不是8位而是32位 所以不行

刚去学了一波动态内存 calloc,用完记得free释放数组





文件系统学习完毕 下次再见

## 总结下

创建文件夹

```
char *dir = "jwdeng1995";
ret = f_mkdir(dir);
```

获取文件大小(FILINFO 里面还能显示其他信息的 ,这里只用了.fsize)

```
char *path = "jwdeng1995/test.txt";
printf("/*******************sd read write test*******************/\n");
uint32_t v_ret_len = 0;

FILINFO v_fileinfo;
if ((ret = f_stat(path, &v_fileinfo)) == FR_OK) {
    printf("%s length is %lld\n", path, v_fileinfo.fsize);
} else {
    printf("%s fstat err [%d]\n", path, ret);
}
```

打开文档并输出内容

```

if ((ret = f_open(&file, path, FA_READ)) == FR_OK) {
    char v_buf = {0};
    ret = f_read(&file, (void *)v_buf, 128, &v_ret_len);
    if (ret != FR_OK) {
      printf("Read %s err[%d]\n", path, ret);
    } else {
      printf("Read :> %s %d bytes lenth\n", v_buf, v_ret_len);
    }
    f_close(&file);
}
```

写文档

```
if ((ret = f_open(&file, path, FA_CREATE_ALWAYS | FA_WRITE)) != FR_OK) {
    printf("open file %s err[%d]\n", path, ret);
    return ret;
} else {
    printf("Open %s ok\n", path);
}
uint8_t hello= "阿斯打扫打扫打扫打扫打扫";
ret = f_write(&file, hello, sizeof(hello), &v_ret_len);
if (ret != FR_OK) {
    printf("Write %s err[%d]\n", path, ret);
} else {
    printf("Write %d bytes to %s ok\n", v_ret_len, path);
}
f_close(&file);
```

动态内存分配空间给数组打印

```
char *v_buf = calloc(v_fileinfo.fsize, sizeof(char));

//用完free掉
free(v_buf);
v_buf = NULL;
```

这节没有代码或工程提供 就这样了

---
版权声明:本文为CSDN博主「jwdeng1995」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jwdeng1995/article/details/108063316
页: [1]
查看完整版本: K210入门-裸机开发(八点半)文件系统补充