dirty 发表于 2024-1-18 00:03

【CH32X035评估板】--作USB Host 对U盘操作

本帖最后由 dirty 于 2024-1-18 00:05 编辑

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本篇讲述CH32X035做USB Host对U盘进行 创建/打开/读/写/删等操作。首先要对开发板USB部分进行了解。</p>

<p>一.了解开发板USB,硬件准备</p>

<p>1.开发板两个USB口即Type-C,Type-A,它们USB 数据线是并联方式,如下图。<span style="color:#0000ff;"><strong>特别注意</strong></span>&nbsp;Type-A USB口供电是需要外接供电的。</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">图1:USB接口原理图</div>

<p>&nbsp;2.硬件准备</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因使用到USB Type-A口,将VBUS与VBUS1短接(因VBUS1对VBUS二极管截止不通),以满足此USB口有供电。将U盘插上USB Type-A口。WCH-LinkE<br />
接5V给开发板供电。连接好后硬件图如下</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">图2:开发板硬件准备</div>

<p>二.代码准备及解读与测验</p>

<p>1.文件解读</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打开Host_Udisk工程如下图。可以看到Udisk_Lib文件夹下是WCH提供的U盘文件系统库文件,包含部分源码和封装库libRV3UFI.a 。User文件夹下Udisk_*.c基本上按DEF_TEST_FUNC_NUM宏选择的对应功能分开的独立源文件。</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">图3:工程结构及代码部分解读</div>

<div style="text-align: center;">&nbsp;</div>

<p>2.代码解读</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通过DEF_TEST_FUNC_NUM宏修改可以调试测验5种操作。Udisk_USBH_Initialization为USB Host初始化,包含硬件和库的初始化;UDisk_USBH_DiskReady检查U盘是否准备好.这之后在UDisk_USBH_ByteOperation里有打开文件,如没有则创建NEWFILE.C,修改文件属性,读、写文件,关闭文件等。</p>

<p>3.测验</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编译烧录,日志如下</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">图4:USB Host按字节读写改日志</div>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;同时,在U盘里可看到创建的&nbsp;NEWFILE.C 及其配置属性与设置一致。</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">图5:U盘文件</div>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;小结:通过此工程,可以跟进一步熟悉应用WCH 的USB Host 应用,一些细节可以根据需要探索和优化。</p>

<p>&nbsp;</p>

Jacktang 发表于 2024-1-19 07:47

<p>ype-A USB口供电是需要外接供电的也是比较正常的</p>

dirty 发表于 2024-1-20 23:20

Jacktang 发表于 2024-1-19 07:47
ype-A USB口供电是需要外接供电的也是比较正常的

<p>两个USB口是并联的,Type C电源对Type A是截止的,用A口的话需从其他地方接电,是个小细节,梳理下就知道处理应对了</p>
页: [1]
查看完整版本: 【CH32X035评估板】--作USB Host 对U盘操作