1、USB设备功能控制 启用USB设备功能:在CubeMX中启用USB设备功能,并选择相应的设备类,如HID(Human Interface Device)类、大容量存储(Mass Storage)类等。 编写HID报告描述符:若选择HID类,需编写HID报告描述符以定义设备功能。 实现数据传输函数:编写USBD_HID_SendReport函...
本章我们还是通过移植官方的USB Mass_Storage例程来实现,该例程在MDK的安装目录下可以找到(..\MDK\ARM\Examples\ST\STM32F10xUSBLib\Demos\Mass_Storage)。 USB Mass Storage类支持两个传输协议: 1)Bulk-Only 传输(BOT) 2)Control/Bulk/Interrupt传输(CBI) Mass Storage类规范定义了两个类规定的请求:Get_Max_L...
USB MassStorage例程中是首先从SD卡中读取SD卡块大小的值,按照这个值来读写SD卡,而实际上2G的SD卡只能按照512字节来读写。所以在读取块大小的值后,把块的大小除以2,块数目乘以2,卡的总容量不变,程序运行后,一切正常了。 USB Mass Storage例程下载地址:https://files.cnblogs.com/irwin0112/USB_MassStorage.zi...
USB MassStorage例程中是首先从SD卡中读取SD卡块大小的值,按照这个值来读写SD卡,而实际上2G的SD卡只能按照512字节来读写。所以在读取块大小的值后,把块的大小除以2,块数目乘以2,卡的总容量不变,程序运行后,一切正常了。 USB Mass Storage例程下载地址:http://files.cnblogs.com/irwin0112/USB_MassStorage.zip...
Keil移植stm32的usb及usb massStorage步骤 1.将STM32的usb的库文件拷贝到Src\Libraries下 并在工程中添加STM32_USB-FS-Device_Driver全部源文件; 在工程属性c++选项include Path添加STM32_USB-FS-Device_Driver\inc路径 2.将本目录的Mass_Storage文件夹拷贝到Src\Usr文件下 并在工程中添加Mass_Storage\src全部源...
将“stm32mp15xx-dkx.dtsi” 中的 usb_phy_tuning 节点拷贝到自己的设备树中,usb_phy_tuning 此节点负责调整 PHY 的配置,相关的参考文档为 Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml。 usb_phy_tuning: usb-phy-tuning { st,hs-dc-level = <2>; ...
我们现在直接利用官方的USB驱动源码来通过计算机进行SD卡和Flash的读写,这里我们需要对官方源码进行一些修改,用于实现这个效果。 22.2.1 USB源码概述 USB Mass Storage类支持两个传输协议: (1)Bulk-Only传输(BOT) (2)Control/Bulk/Interrupt传输(CBI) MassStorage类规范定义了两个类规定的请求:Get_Max_LUN和MassSto...
第一步,我们来配置USB的连接端口,我们连接中找到USB_OTG_FS,在右侧的选项中选择Host_Only,如下图所示: 然后在Middleware中找到USB_HOST,并在右侧“Class forFS IP”中选择“Mass Storage Host Class”配置为大容量存储设备。如下图所示: ...
端点的回调函数在usb_endp.c里,官方的工程用到了端点1用来发送数据,端点2用来接收数据。这两个函数分别是EP1_IN_Callback()和EP2_OUT_Callback(),他们有分别调用usb_bot.c里的Mass_Storage_In()和Mass_Storage_Out()函数。这两个函数会根据数据通讯的内容,判断应该调用usb_scsi.c里的哪个SCSI命令集。当然...
在Middleware and software Packs下选择USB_DEVICE,Class For FS IP选择Mass Storage Class,配置同样保持默认即可。 之后导出代码。 打开vscode,新建工程打开文件夹,将Core/Inc下的头文件放到include下,将Core/Src下的文件放到src下,将USB_DEVICE下的文件夹放到lib下。