首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏嵌入式开发圈

    QSPI FLASH fatfs BMP图片显示

    完成该功能的前提是,SD卡和QSPI均已是Fatfs能够识别的格式。 2、调用LCD显示QSPI FLASH文件系统(fatfs)中的Bmp图片进行显示 软件逻辑如下: /** * @brief The application entry point. /* USER CODE BEGIN 2 */ LCD_Init(); LCD_DisplayOnoff(1); LCD_Clear(WHITE); Mount_SD_Fatfs (); Mount_QSPI_FLASH_Fatfs(); //test_get_qspi_cap(); //test_get_sd_card_cap(); //test_sd_card_fatfs (); //test_spi_flash_fatfs(); copy_file(src_dir, dst_dir); Lcd_show_bmp(0,0,"1:/logo.bmp"

    1.6K10发布于 2021-02-23
  • 来自专栏小锋学长生活大爆炸

    FatFs-目录下文件扫描

    FatFs - 通用的FAT文件系统模块 FatFs是用于小型嵌入式系统的通用FAT/exFAT文件系统模块。FatFs模块是按照ANSI C (C89)编写的,完全独立于磁盘I/O层。 这里也提供了用于微型微控制器的Petit FatFs模块。 官方网站:http://elm-chan.org/fsw/ff/00index_e.html ? 带有FatFs模块的嵌入式系统的典型配置,但不是特定的配置。 ? 如果为FatFs提供了一个工作磁盘模块,则不需要其他任何东西。 为了将现有的具有不同接口的磁盘驱动器连接在一起,需要一些粘合功能来转换FatFs和驱动程序之间的接口。 ? FatFs既不关心使用哪种存储设备,也不关心如何实现。 Fatfs文件夹移植 目录下文件扫描 FATFS fatsd; //定义文件系统对象结构 f_mount(&fatsd,"0:",1); //挂载SD卡 FRESULT scan_files(char

    2.3K10发布于 2020-08-13
  • 来自专栏嵌入式随笔

    FATFS中的NAND FLASH的簇和扇区

    最近使用FATFS读写NANDFLASH,研究了一下小型文件系统的中的簇和扇区的具体含义,簇是文件系统使用的单位,扇区是物理介质(FLASH)使用的单位。 在FATFS中具体操作如下:簇的大小是根据使用者在格式化是通过函数f_mkfs()定的,文件需要操作的FLASH的扇区大小是根据ffconf.h中的参数定的(FF_MIN_SS和FF_MAX_SS这两个参数 每一个硬盘的扇区大小FATFS可通过函数disk_ioctl()获得。 扇区大小指的是FLASH操作的最小单位,这个需要根据使用的不同介质具体定。

    2.4K30编辑于 2022-05-11
  • 来自专栏小点点

    (46)STM32——FATFS文件系统实验

    exFAT FATFS         FATFS文件系统FATFS是一个完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计。完全用标准的C语言编写,所以具有良好的硬件平台独立性。 中间层FATFS模块,实现了FAT文件读或写协议。FATFS模块提供的是ff.c和ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。 最顶层是应用层,使用者无需理会FATFS的内部结构和复杂的FAT协议,只需要调用FATFS模块提供给用户的一系列应用接口函数,如f_open  f_read  f_write和f_close等,就可以像在 我们使用 FATFS,所以把这个选项定义为 0 即可。如果使用Tiny FATFS,就定义为1。 _FS_READONLY。这个用来配置是不是只读,我们需要读写都用,所以这里设置为 0 即可。 第三步,因为 FATFS 模块完全与磁盘 I/O 层分开,因此需要下面的函数来实现底层物理磁盘的读写与获取当前时间。底层磁盘 I/O 模块并不是 FATFS 的一部分,并且必须由用户提供。

    1.7K10编辑于 2022-12-12
  • 来自专栏嵌入式开发圈

    QSPI FLASH与SD卡同时支持fatfs文件系统

    上一篇我们已经在QSPI FLASH上支持了fatfs文件系统:这次我们继续在该代码上支持SD卡文件系统,ST官方在维护CubeMX上对多个硬件驱动的fatfs兼容性做得非常好,所以还是用STM32CubeMX 2、SD卡fatfs配置 STM32Cube-20(补充) | 在SD卡上移植FATFS文件系统 由于上一节我们已经配置了fatfs的参数,再加上STM32CubeMX已经对SD卡做了支持,所以我们将这个选项勾上就可以了 3、编写同时测试QSPI FLASH以及SD卡fatfs的程序 ? 很幸运的是,官方已经帮我们把代码都写好了,不需要写一行,直接进入应用编程即可。 (); MX_SDMMC1_SD_Init(); /* USER CODE BEGIN 2 */ Mount_SD_Fatfs(); Mount_QSPI_FLASH_Fatfs (); test_get_qspi_cap(); test_get_sd_card_cap(); test_sd_card_fatfs(); test_spi_flash_fatfs

    2.2K20发布于 2021-02-23
  • 来自专栏小锋学长生活大爆炸

    FatFs检测并建立多层目录并更改文件名

    FatFs检测文件路径是否存在,不存在就建立多层目录,最后更改文件名 if(W_Dresult==FR_OK) { wifi_dp_wav_file_status=0;

    2.3K30发布于 2020-08-13
  • 来自专栏嵌入式开发圈

    让QSPI FLASH(W25Q64)支持Fatfs文件系统

    在中间件的地方选择fatfs,然后再Mode处选择User-defined,因为这个不是官方默认支持的,需要用户自己去实现Fatfs关于底层的驱动接口。 1、功能参数配置 其中,关于功能参数的配置,主要是用到了才去配置,不用到的选项默认就行了,这部分请参考ST官网有关STM32cube Fatfs的应用开发文档,如下所示: ? ? USE_LFN这个选项主要是为了支持长文件名,并且当需要支持这个功能的时候需要提供缓存区存放,fatfs提供了BSS、STACK、HEAP三种方式。 ? 3、Fatfs驱动QSPI接口实现 对于fatfs,ST官方多封装了一层抽象接口给用户进行填写函数,这个文件是:user_diskio.c,主要提供了如下给用户编写的接口: Diskio_drvTypeDef 获取完整demo: 码云仓库:https://gitee.com/morixinguan/bear-pi/tree/master/19.QSPI_Fatfs ?

    4.3K20发布于 2021-02-23
  • 来自专栏鸿蒙开发笔记

    鸿蒙轻内核M核源码分析系列二一 05 文件系统FatFS

    3、LiteOS-M FATFS的文件系统操作接口快速记录下各个操作接口,对每个接口的用途用法不再描述。 = NULL) { ff_memfree(g_fatfs[index].win); }⑷ (void)memset_s(&g_fatfs[index], sizeof(FATFS) = NULL) { ff_memfree(g_fatfs[index].win); } (void)memset_s(&g_fatfs[index], sizeof(FATFSfatfs_unlink、fatfs_rmdir、fatfs_readdir、fatfs_closedir、fatfs_open、fatfs_close等等,会进一步调用FatFS的文件目录操作接口进行封装 的结构体和全局变量,全局变量的操作接口,分析了下FatFS文件操作接口。

    22810编辑于 2025-06-11
  • 来自专栏鸿蒙开发笔记

    鸿蒙轻内核M核源码分析系列二一 04 文件系统FatFS

    1、FatFS文件系统结构体介绍会分2部分来介绍结构体部分,先介绍FatFS文件系统的结构体,然后介绍LiteOS-M内核中提供的和FatFS相关的一些结构体。 1.1 FatFS的结构体在openharmony/third_party/FatFs/source/ff.h头文件中定义FatFS的结构体,我们先简单了解下,后文会使用到的。 结构体FATFSFatFS文件系统类型结构体。 \fs\fatfs\fatfs.c中定义的常用全局变量。 在文件操作接口中,会调用该函数来切换驱动器,如fatfs_open、fatfs_unlink、fatfs_stat、fatfs_mkdir、fatfs_opendir、fatfs_rmdir、fatfs_rename

    37210编辑于 2025-06-11
  • 来自专栏TencentOS-tiny

    STM32Cube-20(补充) | 在SD卡上移植FATFS文件系统

    配置FATFS文件系统 使用STM32CubeMX配置FATFS文件系统非常方便,只需要在软件中开启即可,软件会自动帮我们移植好。 之后可以看到SD卡恢复正常,可以进行FATFS实验啦: ? 使用FATFS挂载SD卡 注意:在挂载之前必须要保证SD卡正常拥有FAT文件系统。 挂载文件系统使用f_mount API,该API将文件系统对象注册/注销到FatFs模块,API原型如下: FRESULT f_mount ( FATFS* fs, /* [IN] 可以看到,FATFS创建文件时,返回的错误码是13,那么如何定位该问题呢?13代表什么? 打开FATFS的ff.h文件即可看到所有错误码所表示的含义: ? 至此,我们已经学会如何在SD卡上移植FATFS文件系统。

    3K21发布于 2020-07-16
  • 来自专栏嵌入式开发圈

    基于小熊派SD卡+Fatfs+移植开源iniparse解析库并使用

    4、stm32cubeMX SD卡+Fatfs文件系统工程配置 4.1 时钟配置 这里我选择是外部时钟。 ? ? 4.2 串行调试接口配置 ? 4.5 配置SD卡支持Fatfs ? 4.6 配置一路调试灯+2个按键 我们通过两个按键来实现更改参数和读取参数,并且用LED来提示。 ? 最后生成代码即可 。 5、下载ini_parse库到生成的代码中并进行移植以支持fatfs ? 将对应的库文件包含到工程源码中: ? 由于ini_parse基于标准库所写,所以文件操作都是基于标准文件操作进行编写的,在这里我们需要把这些接口全部转变成fatfs的接口。 iniparse.h 在iniparse.h中包含fatfs的头文件 #include "fatfs.h" 原来标准文件操作的接口 //void iniparser_dump_ini(dictionary

    1.5K10发布于 2020-05-21
  • 来自专栏安富莱嵌入式技术分享

    【STM32H7教程】第88章 STM32H7的SDMMC总线应用之SD卡移植FatFs文件系统

    FatFS中ffconf.h文件中各种配置说明: http://elm-chan.org/fsw/ff/doc/config.html 88.7 FatFs移植步骤 这里将FatFs的移植步骤为大家做个说明 FatFs相关源文件。 大家可以将所有相关文件都复制到自己的工程里面,配套例子是放在\Libraries\FatFs。 demo_sd_fatfs.c。 88.8 FatFs应用代码测试 这里将FatFs大部分函数都做了测试。注意,所有用到的函数在FatFs官网都有详细说明。 的移植,然后FatFs相关的知识点可以到FatFs官网查看,资料非常详细。

    4.7K20发布于 2021-01-26
  • 来自专栏C语言

    C结构体的初始化你还在按顺序写?试试这个C99神操作!

    fs_op_t fatfs_op = { .mount = fatfs_mount, .unmount = fatfs_unmount, .open = fatfs_open, .read = fatfs_read, .write = fatfs_write, .seek = fatfs_seek, .stat = fatfs_stat, .close = fatfs_close, .opendir = fatfs_opendir, .readdir = fatfs_readdir, .closedir = fatfs_closedir , .unlink = fatfs_unlink,};注:该课程介绍如何6000+行代码开发一个小型的多进程、带文件系统的操作系统。

    31210编辑于 2025-10-27
  • 来自专栏鸿蒙开发笔记

    OpenHarmony 内核源码分析(索引节点篇) | 谁是文件系统最重要的概念

    , .Chattr = fatfs_chattr, .Lookup = fatfs_lookup, .Rename = fatfs_rename, .Create = fatfs_create, .Unlink = fatfs_unlink, .Reclaim = fatfs_reclaim, .Truncate , .Readdir = fatfs_readdir, .Rewinddir = fatfs_rewinddir, .Closedir = fatfs_closedir , .Mkdir = fatfs_mkdir, .Rmdir = fatfs_rmdir, .Fscheck = fatfs_fscheck, . .read = fatfs_read, .write = fatfs_write, .seek = fatfs_lseek, .close = fatfs_close

    38910编辑于 2025-03-27
  • ESP32 驱动瀚海微SD NAND 完整方案 + FAT/FAT32 驱动核心区别

    二、FAT 格式和 FAT32 格式驱动文件的核心区别ESP32 中 FAT/FAT32 的驱动底层依赖同一套fatfs库(esp-idf集成的开源 FATFS 文件系统实现,版本为 ff14b),API 底层驱动核心差异(fatfs 库层面)ESP32 的fatfs驱动库对 FAT/FAT32 的封装层完全一致,差异集中在底层寻址和 FAT 表管理,这也是驱动层面的核心区别,无需开发者修改代码,库会自动识别并适配 扇区大小适配:两者均支持 512 字节标准扇区(SD NAND 默认),fatfs 驱动库对扇区的读写操作 API 完全通用,仅在扇区到簇的映射时,根据簇大小计算偏移量不同。3. 配置,调用fatfs_format_sdmmc手动格式化:// 手动格式化为FAT32(强制)ret = fatfs_format_sdmmc(card, FATFS_FORMAT_FAT32, NULL );// 手动格式化为FAT16(强制)// ret = fatfs_format_sdmmc(card, FATFS_FORMAT_FAT16, NULL);if (ret == ESP_OK) {

    70610编辑于 2026-02-02
  • 来自专栏嵌入式项目开发

    基于STM32完成FATFS文件系统移植与运用--这是完全免费开源的FAT文件系统

    二、FATFS文件系统介绍 2.1 FATFS简介 FatFs 是一种完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。 FATFS最顶层是应用层,使用者无需理会 FATFS 的内部结构和复杂的 FAT 协议,只需要调用FATFS 模块提供给用户的一系列应用接口函数,如 f_open, f_read, f_write 和 中间层 FATFS 模块, 实现了 FAT 文件读/写协议。 FATFS 模块提供的是 ff.c 和 ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。 三、 移植FATFS文件系统 移植之前,首先得准备一个能正常编译的工程,并且工程里有SD卡的驱动代码,提供了读写扇区这些函数才能进行FATFS文件系统的正常移植。 这篇文章重点是FATFS文件系统的移植过程。

    5.7K31编辑于 2022-01-21
  • 来自专栏嵌入式开发圈

    U盘容量大小造假技术手段实现之8M变4G(以STM32 SPI_FLASH为例)

    1.6、Fatfs文件系统配置 ? 1.7、按键配置 ? 用于手动删除扇区。 1.8、堆栈设置 ? 2、移植SPI_FLASH驱动 ? ? ? 3、让FLASH适配fatfs以及USB MSC 3.1、Fatfs适配 先适配fatfs,首先打开user_diskio.c,然后添加spi_flash的头文件,接下来填写接口: USER_initialize uint8_t Mount_Fatfs(void) { retUSER = f_mount(&USERFatFS, USERPath, 1); if(retUSER ! 接下来我们打开这个U盘,看到如下文件就已经被存储在了SPI FLASH的Fatfs文件系统里了,并且可以正常打开浏览: ? ? 那如果我们复制一个超出FLASH大小的文件到盘里会怎么样呢?? 码云仓库: https://gitee.com/morixinguan/personal-open-source-project/tree/master/7.usb_fatfs_msc_expansion

    1.8K30发布于 2021-03-15
  • 来自专栏嵌入式项目开发

    STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试

    /usb调用 u8 SDIO_SdCardWriteDiskSector(u8*buf,u32 sector,u8 cnt); //写SD卡,fatfs/usb调用 #endif 四、移植FATFS文件系统 4.1 FATFS文件系统介绍 (1)介绍 FatFs 是一种完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。 最顶层是应用层,使用者无需理会 FATFS 的内部结构和复杂的 FAT 协议,只需要调用FATFS 模块提供给用户的一系列应用接口函数,如 f_open, f_read, f_write 和 f_close 中间层 FATFS 模块, 实现了 FAT 文件读/写协议。 FATFS 模块提供的是 ff.c 和 ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。 u8 PlayerMP3(const char *path); FATFS FatFs; int main() { LED_Init(); BEEP_Init(); KeyInit(); USARTx_Init

    3.2K10编辑于 2023-01-30
  • 来自专栏AIoT开源项目分享

    RT-Thread进阶之文件系统

    支持多种类型的文件系统,如 FatFS、RomFS、DevFS 等,并提供普通文件、设备文件、网络文件描述符的管理。 虚拟文件系统层: 用户可以将具体的文件系统注册到 DFS 中,如 FatFS、RomFS、DevFS 等。 将fatfs文件系统的数据结构dfs_elm 地址赋值给空的文件系统操作表目录 elm-FAT文件系统注册过程如下图所示: ? else { LOG_W("sd card mount to '/fatfs' failed!") 6.6 文件系统综合例程 DevFS、RomFS、RamFS、FatFS文件系统配置: ? littlefs文件系统配置; ?

    3K10发布于 2020-07-13
  • 来自专栏安富莱嵌入式技术分享

    系统的谈下STM32H7的SD卡驱动兼容性问题,现在兼容性很强,主流厂家16GB以上容量全部通过

    【测试例子】 例子都可以在论坛置顶帖V7网盘里面下载: FatFS: V7-025_FatFS文件系统例子(SD卡 V1.2) 测试说明:http://www.armbbs.cn/forum.php mod=viewthread&tid=100749 FatFS和FileX都支持exFAT,如果使用的话,需要使用响应宏定义。

    1.2K30发布于 2021-07-14
领券