stm32--USB(作为U盘)+FatFs的实现

本文介绍了如何在STM32上实现USB功能作为U盘,并结合FatFs文件系统进行移植。首先添加USB相关库文件,然后在不同文件中进行必要的修改,如修改USB配置、中断处理和存储函数。在调试过程中,遇到编译问题并解决。为了解决USB与FatFs操作SPIFlash时可能的冲突,提出了三种方案:禁用USB中断、硬件断开D+D-以及按需初始化USB。最终选择了在需要时初始化USB的方案,避免了硬件改动和潜在冲突。
摘要由CSDN通过智能技术生成

一、USB功能的添加(作为U盘)

添加文件

将官方库中的Library文件夹中的所有有效文件添加到工程中,分为4个文件夹:

  1. usb class为硬件相关(Library\Class);
  2. usb driver为底层驱动(Driver);
  3. usb library为设备核心库(Library\Core);
  4. usb application为自建目录,存放上述三个文件夹中的各需要修改的template文件(.c.h各2个),和官方例程中的几个文件(3个.c1个.h)。
  5. 前三个目录下的文件均为只读,不修改;移植时只修改usb application目录下的文件。

移植修改

  1. usbd_desc.c、.h, usbd_pwr.c, usbd_usr.c:来自官方例程,不修改
  2. usb_conf.h:去掉eval相关的两个.h包含;添加#define INTERNAL_PULLUP
  3. usbd_conf.h:删除MSC Class之外的所有Class defines;修改MSC_MEDIA_PACKET为单扇区大小(4096)
  4. usb_bsp.c:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值