本篇讲述CH32X035做USB Host对U盘进行 创建/打开/读/写/删等操作。首先要对开发板USB部分进行了解。
一.了解开发板USB,硬件准备
1.开发板两个USB口即Type-C,Type-A,它们USB 数据线是并联方式,如下图。特别注意 Type-A USB口供电是需要外接供电的。
2.硬件准备
因使用到USB Type-A口,将VBUS与VBUS1短接(因VBUS1对VBUS二极管截止不通),以满足此USB口有供电。将U盘插上USB Type-A口。WCH-LinkE
接5V给开发板供电。连接好后硬件图如下
二.代码准备及解读与测验
1.文件解读
打开Host_Udisk工程如下图。可以看到Udisk_Lib文件夹下是WCH提供的U盘文件系统库文件,包含部分源码和封装库libRV3UFI.a 。User文件夹下Udisk_*.c基本上按DEF_TEST_FUNC_NUM宏选择的对应功能分开的独立源文件。
2.代码解读
通过DEF_TEST_FUNC_NUM宏修改可以调试测验5种操作。Udisk_USBH_Initialization为USB Host初始化,包含硬件和库的初始化;UDisk_USBH_DiskReady检查U盘是否准备好.这之后在UDisk_USBH_ByteOperation里有打开文件,如没有则创建NEWFILE.C,修改文件属性,读、写文件,关闭文件等。
3.测验
编译烧录,日志如下
同时,在U盘里可看到创建的 NEWFILE.C 及其配置属性与设置一致。
小结:通过此工程,可以跟进一步熟悉应用WCH 的USB Host 应用,一些细节可以根据需要探索和优化。
本帖最后由 dirty 于 2024-1-18 00:05 编辑
引用: Jacktang 发表于 2024-1-19 07:47 ype-A USB口供电是需要外接供电的也是比较正常的
两个USB口是并联的,Type C电源对Type A是截止的,用A口的话需从其他地方接电,是个小细节,梳理下就知道处理应对了