fatfs文件系统与u盘驱动联立起来(usb_host)

1.FatFS是一个为小型嵌入式系统设计文件系统模块

正常移植系统后我们需要修改文件系统的两个.C文件ffconf.h和 diskio.c 。             ffconf.h 配置文件  修改一些配置 也可使用stm32cubemx生成usbh_conf.c。     diskio.c 包含底层存储介质的操作函数,这些函数需要用户自己实现,主要添加底层驱动函数。

使用stm32cubemx会生成usbh_diskio  该.c文件的作用就是实现文件系统底层驱动块与usb驱动的连接,其函数内容就是创建一个io驱动程序结构体编写(1)设备状态获取DSTATUS USBH_status (BYTE);(2)设备初始化DSTATUS USBH_initialize (BYTE);(3)扇区读取DRESULT USBH_read (BYTE, BYTE*, DWORD, UINT);(4)扇区写入  DRESULT USBH_write (BYTE, const BYTE*, DWORD, UINT);(5)其他控制 DRESULT USBH_ioctl (BYTE, BYTE, void*);   完成文件系统驱动函数与io驱动的联立  我们就可以正常使用fatfs的api函数  来对u盘的操作。如果使用的是stm32cubemx以上两个.c文件自动生成,可直接使用fatfs api函数编写用户程序。

正常使用文件系统时  使用的结构体和对象一般都在fatfs.c定义好了

1 f_mount 在fatfs模块上注册或注销一个工作区(文件系统对象)

f_mount(&USBHFatFS, (TCHAR const*)USBHPath, 0)

参数说明(1)&USBHFatFS文件系统对象结构体,;在fatfs定义好的结构体

(2)USBHPath 驱动路径指针   在fatfs定义好逻辑驱动器路径

2 f_open 创建/打开一个用于访问文件的文件对象

 f_open(&USBHFile, filename, FA_READ);

参数说明(1)&USBHFile  文件对象

(2)文件名  需要自己宏定义好  (app.bin)

(3)   可以进行读  打开后对文件的权限

3 f_read 从一个文件读取数据

f_read(&USBHFile, RAM_Buffer, sizeof(RAM_Buffer), (void *)&APP_Size); 

参数说明(1)&USBHFile  文件对象

(2)RAM_Buffer存储读取数据的缓冲区的指针  需要自己定义好(flash写入时写入的数据地址)

(3) sizeof(RAM_Buffer), 要读取的字节数

(4)&APP_Size 接收读取字节数的 UINT 变量的指针  (flash写入时写入的字长大小)

4 f_stat( filename, NULL)

(1) 文件名  需要自己宏定义好  (app.bin)

5 f_close 关闭一个打开的文件(与open相对应)

f_close(&USBHFile)

参数说明(1)&USBHFile  文件对象

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值