访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机Cube编程

有关于STM32Cube的几个常见问题(USB设备库)

导读:
关键字:
usb,

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内核的抽象。

来源:网络整理   作者:佚名  2017/11/29 16:38:00
栏目: [ STM32单片机Cube编程]

相关阅读

有关于STM32Cube的几个常见问题(USB设备库)

STM32标准库改为HAL库的程序实现

STM32CubeMX新建工程的过程及方法解析

STM32程序之MAX6675热电偶温度读取

意法半导体STM32Cube微控制器开发软件在GitHub正式上线

意法半导体为STM32Cube生态系统新增LoRaWAN®固件无线更新支持

意法半导体发布STM32CubeMonitor工具 可实时显示应用程序运行时的变量

基于嵌入式系统原型设计的STM32开放式开发环境详解

手机红外遥控器发送红外信号到STM32【HAL库】

STM32单片机的CPU运行性能的算法测试

意法半导体更新TouchGFX软件框架,新增强大功能和支持STM32Cube的便利工具

STM32CubeMX开发工具的安装

浅析STM32 HAL固件库编程文件组织

STM32CubeMX配置工具创建了STM32微控制器 让优化MCU配置参数更加轻松

ST针对STM32微控制器推出一套免费的功能强大的设计工具及软件STM32Cube

意法半导体发布最新版的STM32Cube ecosystem Multi-OS软件

ST的 STM32Cube开发工具将支持经市场考验的STM32 F2微控制器

意法半导体(ST)灵活便捷的STMCube软件平台帮助设计人员快速上手,支持所有量产STM32微控制器

关于stm32CubeMX的stm32f103编程

关于stm32跑马灯的程序