USB U 盘(Host)实验
USB Host DISK
前言
这是一个 USB 主机的实验,在 STM32N647 开发板上实现了连接 U 盘的功能。
本实验对应的工程文件夹为:<STM32N647 开发板软件包路径>/Projects/55_USB_Host_DISK
。
实验准备
- 将 STM32N647 开发板软件包中提供的示例 FSBL 固件烧录到 STM32N647 开发板上。
FSBL 烧录说明
本实验使用的 FSBL 为 STM32N647 开发板软件包中的示例 FSBL,请根据 示例 FSBL介绍 中的说明烧录对应 fsbl.hex
。
不同的的实验中,若使用相同的 FSBL,则无需重复烧录。
- 将工程文件夹下
Binary
目录下的appli.hex
依次烧录到 STM32N647 开发板上。
烧录说明
烧录顺序不影响烧录结果。
- 将 LCD 通过 FPC 延长线接入 STM32N647 开发板核心板的
RGBLCD
接口。
LCD 适配说明
本实验例程仅支持 正点原子 RGB 触摸屏模块
。
-
将 U 盘接入 STM32N647 开发板上的
USB_HOST
接口。 -
使用 USB Type-C 数据线将串口调试助手的物理机与 STM32N647 开发板的
USB UART
接口连接。 -
将 STM32N647 开发板的 BOOT 模式配置为
Flash boot
模式
STM32N647 开发板 BOOT 模式配置说明
通过 STM32N647 开发板 P6
的跳线帽配置其 BOOT 模式:
Development boot
:B1 接 3V3
Flash boot
:B0、B1 都接 GND
- 将对应接口的电源线接入 STM32N647 开发板底板的 USB Type-C 接口或 DC 接口,为其进行供电,并将
K1
自锁开关切换到开启状态。
实验现象
DS0
灯以一定的频率闪烁。
LCD 上显示 U 盘的总容量和可用容量信息。
通过串口调试助手,可借助 USMART
和 FatFs
文件系统对 U 盘进行操作:
uint8_t mf_mount(uint8_t* path,uint8_t mt)
uint8_t mf_open(uint8_t*path,uint8_t mode)
uint8_t mf_close(void)
uint8_t mf_read(uint16_t len)
uint8_t mf_write(uint8_t*dat,uint16_t len)
uint8_t mf_opendir(uint8_t* path)
uint8_t mf_closedir(void)
uint8_t mf_readdir(void)
uint8_t mf_scan_files(uint8_t * path)
uint32_t mf_showfree(uint8_t *drv)
uint8_t mf_lseek(uint32_t offset)
uint32_t mf_tell(void)
uint32_t mf_size(void)
uint8_t mf_mkdir(uint8_t*pname)
uint8_t mf_fmkfs(uint8_t* path,uint8_t opt,uint16_t au)
uint8_t mf_unlink(uint8_t *pname)
uint8_t mf_rename(uint8_t *oldname,uint8_t* newname)
void mf_getlabel(uint8_t *path)
void mf_setlabel(uint8_t *path);
void mf_gets(uint16_t size)
uint8_t mf_putc(uint8_t c)
uint8_t mf_puts(uint8_t*c)