<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于STM32Cube USB設備庫應用中常見(jiàn)的幾個(gè)問(wèn)題

基于STM32Cube USB設備庫應用中常見(jiàn)的幾個(gè)問(wèn)題

作者: 時(shí)間:2018-08-01 來(lái)源:網(wǎng)絡(luò ) 收藏

本文介紹了STM32Cube 設備庫應用中常見(jiàn)的幾個(gè)問(wèn)題及解決方法。

本文引用地址:http://dyxdggzs.com/article/201808/384809.htm

1、如何動(dòng)態(tài)地修改設備描述符或字符串描述符?

在文件usbd_desc.c里,與設備和字符串相關(guān)的描述符可以通過(guò)GetDescriptor的回調函數進(jìn)行動(dòng)態(tài)調整。

2、如何讓大容量存儲類(lèi)驅動(dòng)支持多個(gè)邏輯盤(pán)【LUN】?

在文件usbd_msc_storage_xxx.c中修改STORAGE_LUN_NBR?!緓xx代表使用的存儲介質(zhì)】

STORAGE_Inquirydata數組里包含了每個(gè)LUN的標準查詢(xún)數據【inquiry data】。

比如用到2個(gè)LUN。

constint8_t STORAGE_Inquirydata[] = {

/*LUN 0 */

0x00,

0x80,

0x02,

0x02,

(D_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,

(D_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、端點(diǎn)的地址在哪里定義?

端點(diǎn)地址一般在各個(gè)類(lèi)驅動(dòng)的頭文件里定義。

比如MSC類(lèi)的端點(diǎn)定義就在 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模式。

用戶(hù)通過(guò)如下宏選擇合適的USB核:

USE_USB_HS// USB High Speed (HS) Core

USE_USB_FS// USB Full Speed (FS) Core

USE_USB_HSand USE_USB_HS_IN_FS // USBHigh Speed (HS) Core in FS mode

5、如何在USB設備類(lèi)驅動(dòng)里面修改或增加端點(diǎn)?

a.使用USBD_LL_OpenEP()進(jìn)行端點(diǎn)的初始化。

b.在usb_conf.c里為新定義的端點(diǎn)配置發(fā)送或接收FIFO。

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

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

注意配置TX和RX FIFO的大小時(shí)不得超過(guò)對應的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() 進(jìn)行PMA的配置。

6. USB設備庫與實(shí)時(shí)操作系統兼容嗎?

是的,該USB 設備庫可以配合RTOS使用。其中CMSIS RTOS的封裝器實(shí)現對OS內核的抽象。



關(guān)鍵詞: 單片機 USB

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>