基于STM32Cube USB设备库应用的几个常见问题

发布者:自由漫步最新更新时间:2021-06-29 来源: eefocus关键字:STM32Cube  USB设备库  大容量存储 手机看文章 扫描二维码
随时随地手机看文章

简介:简单总结基于STM32Cube USB设备库应用的几个常见问题,如如何让大容量存储类驱动支持多个逻辑盘【LUN】?USB设备库是否可以任意运行在FULL SPEED或HIGH SPEED模式?等


1、如何动态地修改设备描述符或字符串描述符?


在文件usbd_desc.c里,与设备和字符串相关的描述符可以通过GetDescriptor的回调函数进行动态调整。


2、如何让大容量存储类驱动支持多个逻辑盘【LUN】?


在文件usbd_msc_storage_xxx.c中修改STORAGE_LUN_NBR。【xxx代表使用的存储介质】


STORAGE_Inquirydata数组里包含了每个LUN的标准查询数据【inquiry data】。


比如用到2个LUN。


constint8_t STORAGE_Inquirydata[] = {


/*LUN 0 */


0x00,


0x80,


0x02,


0x02,


(USBD_STD_INQUIRY_LENGTH- 5),


0x00,


0x00,


0x00,


'S','T', 'M', ' ', ' ', ' ', ' ', ' ', /* Manufacturer:


8bytes */


'm','i', 'c', 'r', 'o', 'S', 'D', ' ', /* Product:


16Bytes */


'F','l', 'a', 's', 'h', ' ', ' ', ' ',


'1','.', '0' ,'0', /* Version: 4 Bytes */


/*LUN 1 */


0x00,


0x80,


0x02,


0x02,


(USBD_STD_INQUIRY_LENGTH- 5),


0x00,


0x00,


0x00,


'S','T', 'M', ' ', ' ', ' ', ' ', ' ', /* Manufacturer:8 bytes */


'N','a', 'n', 'd', ' ', ' ', ' ', ' ', /* Product:16 Bytes */


'F','l', 'a', 's', 'h', ' ', ' ', ' ',


'1','.', '0' ,'0', /* Version: 4 Bytes */


};


3、端点的地址在哪里定义?


端点地址一般在各个类驱动的头文件里定义。


比如MSC类的端点定义就在 usbd_msc.h定义如下:


#define MSC_EPIN_ADDR 0x81 //For Endpoint 1 IN


#defineMSC_EPOUT_ADDR 0x01 // For Endpoint 1 OUT


4、USB设备库是否可以任意运行在FULL SPEED或HIGH SPEED模式?


是的,该库支持USB OTG FS和USBOTG HS模式。其中,USB OTG FS内核仅支持FS模式,USB OTG HS内核既支持FS模式也支持HS模式。


用户通过如下宏选择合适的USB核:


"USE_USB_HS"// USB High Speed (HS) Core


"USE_USB_FS"// USB Full Speed (FS) Core


"USE_USB_HS"and "USE_USB_HS_IN_FS" // USBHigh Speed (HS) Core in FS mode


5、如何在USB设备类驱动里面修改或增加端点?


a.使用USBD_LL_OpenEP()进行端点的初始化。


b.在usb_conf.c里为新定义的端点配置发送或接收FIFO。


以STM32F2、STM32F4等支持OTG功能的MCU为例。


用到HAL_PCD_SetRxFiFo()和HAL_PCD_SetTxFiFo()配置TX/RX的FIFO。


注意配置TX和RX FIFO的大小时不得超过对应的USB核所拥有的全部FIFO.


USBOTG FS core的FIFO 为320 x 32 bits(1.25 Kbytes)


USBOTG HS core的FIFO 为1024 x 32bits (4 Kbytes)


对于仅支持FS核的STM32F0,STM32L0, STM32F1 and STM32F3系列,


使用HAL_PCD_PMA_Config() 进行PMA的配置。


6. USB设备库与实时操作系统兼容吗?


是的,该USB 设备库可以配合RTOS使用。其中CMSIS RTOS的封装器实现对OS内核的抽象。


关于STM32CUBE USB设备库应用介绍的更多细节,请查看ST官方提供的使用手册UM1734。

关键字:STM32Cube  USB设备库  大容量存储 引用地址:基于STM32Cube USB设备库应用的几个常见问题

上一篇:基于STM32F103的贴片机控制系统的设计与实现
下一篇:STM32再学习——启动流程分析

推荐阅读最新更新时间:2024-11-17 11:10

获IBM授权专利275项,容量存储项目落户淮安
 6月16日下午,AMT/IBM相变存储知识产权移转淮安签约暨大容量存储研发启动仪式在江苏省淮安市举行。淮安市委书记姚晓东,淮阴区委书记刘泽宇、区长朱晓波,IBM公司及AMT(江苏时代全芯存储)相关负责人出席仪式。 签约仪式现场(刘绪年 摄)     “相变存储技术(PCM)作为新一代存储技术,相比于现有的存储技术在数据安全和可靠性方面有非常大的提升,完全颠覆了现有市场的存储技术。”据介绍,目前市场已有的大容量闪存技术,可读写次数大约3000到5000次,而相变存储技术可达百万到千万次,使用寿命提高1000倍。在数据保存时间上,传统的大容量闪存只有3到5年的时间,相变存储器数据保存时间一般都在10年以上。另外相变存储技术具有
[手机便携]
STM32Cube-按键控制LED
STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。平台包括了STM32Cube 硬件抽象层(一个STM32抽象层嵌入式软件,确保在STM32系列最大化的便携性)和一套的中间件组件(RTOS, USB, FatFs, TCP/IP, Graphics, 等等). 直观的STM32微控制器的选择和时钟树配置 微控制器图形化配置外围设备和中间件的功能模式和初始化参数 C代码生成项目覆盖STM32微控制器的初始化符合IAR™,Keil的™和GCC编译器。 对于新的产品设计,我们强烈推荐使用STM32Cube来加速你的开发过程,并为以后的产品平台移植打下良好的基础。 关于HAL库API的使用方法可以到S
[单片机]
STM32Cube-按键控制LED
​意法半导体扩大STM32Cube开发环境,简化单核MPU裸机软件开发
2023 年 12 月 2 0 日, 中国 - 意法半导体新软件帮助工程师把STM32微控制器应用代码移植到性能更强大的STM32MP1微处理器上,将嵌入式系统设计性能提高到一个新的水平。 随着终端用户不断要求日常生活工作设备具有更多的功能和更快的响应速度,设备厂商需要使用有效的解决方案来提高产品性能。工业实时应用是一个典型的例子。 越来越多的加工设备、工厂自动化系统、物流零售技术、物联网设备和数字标牌要求主控制器具有更高的性能,而微控制器(MCU)无法满足性能要求。 意法半导体的STM32MP1微处理器(MPU)专注这些发展趋势,整合性能更强大的ARM®Cortex®-A7应用级体系架构与更高的处理能力
[单片机]
​意法半导体扩大<font color='red'>STM32Cube</font>开发环境,简化单核MPU裸机软件开发
使用隔离多通道和容量存储记录仪测试UPS经验分享
摘要:UPS电源的工作过程多且时间长,往往需要动用多台示波器和高压差分探头同时测试,记录数据也相对比较麻烦,今天给大家推荐一种新的测试方法,“傻瓜式”操作,测试时间节省80%! 一、引子 在研发和测试时,你是否有过这样糟糕的体验:想一次查看四路以上的信号波形但目前示波器一般最多只有四个通道;接线时头疼测量通道间不隔离,混合接线时一不小心就烧坏探头或示波器;受存储限制,测试时需要不停地进行开始、停止、保存,最后再逐个打开查看;如此等等。现在有一台机器可以彻底解决此类烦恼,让你享受流畅的测试流程,下面是一次极度流畅的UPS电源测试实录。 二、接线 YD/T 1095-2018主要规定的电气参数分为功率和响应两类,为保隔
[电源管理]
使用隔离多通道和<font color='red'>大</font><font color='red'>容量</font><font color='red'>存储</font>记录仪测试UPS经验分享
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved