1、如何動(dòng)態(tài)地修改設(shè)備描述符或字符串描述符? 在文件usbd_desc.c里,與設(shè)備和字符串相關(guān)的描述符可以通過(guò)GetDescriptor的回調(diào)函數(shù)進(jìn)行動(dòng)態(tài)調(diào)整。 2、如何讓大容量存儲(chǔ)類驅(qū)動(dòng)支持多個(gè)邏輯盤(pán)【LUN】? 在文件usbd_msc_storage_xxx.c中修改STORAGE_LUN_NBR!緓xx代表使用的存儲(chǔ)介質(zhì)】 STORAGE_Inquirydata數(shù)組里包含了每個(gè)LUN的標(biāo)準(zhǔn)查詢數(shù)據(jù)【inquiry data】。 比如用到2個(gè)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、端點(diǎn)的地址在哪里定義? 端點(diǎn)地址一般在各個(gè)類驅(qū)動(dòng)的頭文件里定義。 比如MSC類的端點(diǎn)定義就在 usbd_msc.h定義如下: #define MSC_EPIN_ADDR 0x81 //For Endpoint 1 IN #defineMSC_EPOUT_ADDR 0x01 // For Endpoint 1 OUT 4、USB設(shè)備庫(kù)是否可以任意運(yùn)行在FULL SPEED或HIGH SPEED模式? 是的,該庫(kù)支持USB OTG FS和USBOTG HS模式。其中,USB OTG FS內(nèi)核僅支持FS模式,USB OTG HS內(nèi)核既支持FS模式也支持HS模式。 用戶通過(guò)如下宏選擇合適的USB核: "USE_USB_HS"http:// USB High Speed (HS) Core "USE_USB_FS"http:// USB Full Speed (FS) Core "USE_USB_HS"and "USE_USB_HS_IN_FS" // USBHigh Speed (HS) Core in FS mode 5、如何在USB設(shè)備類驅(qū)動(dòng)里面修改或增加端點(diǎn)? a.使用USBD_LL_OpenEP()進(jìn)行端點(diǎn)的初始化。 b.在usb_conf.c里為新定義的端點(diǎn)配置發(fā)送或接收FIFO。 用到HAL_PCD_SetRxFiFo()和HAL_PCD_SetTxFiFo()配置TX/RX的FIFO。 注意配置TX和RX FIFO的大小時(shí)不得超過(guò)對(duì)應(yīng)的USB核所擁有的全部FIFO. USBOTG FS core的FIFO 為320 x 32 bits(1.25 Kbytes) USBOTG HS core的FIFO 為1024 x 32bits (4 Kbytes) 對(duì)于僅支持FS核的STM32F0,STM32L0, STM32F1 and STM32F3系列, 使用HAL_PCD_PMA_Config() 進(jìn)行PMA的配置。 6. USB設(shè)備庫(kù)與實(shí)時(shí)操作系統(tǒng)兼容嗎? 是的,該USB 設(shè)備庫(kù)可以配合RTOS使用。其中CMSIS RTOS的封裝器實(shí)現(xiàn)對(duì)OS內(nèi)核的抽象。 關(guān)于STM32CUBE USB設(shè)備庫(kù)應(yīng)用介紹的更多細(xì)節(jié),請(qǐng)查看ST官方提供的使用手冊(cè)UM1734。 **************融創(chuàng)芯城*************
|