STM32,使用USB VCP功能,即虛擬串口功能時(shí),選擇USB_OTG_FS Device_Only,如上圖。cube自動(dòng)生成工程,不作修改。將USB插入電腦,WIN10或WIN7系統(tǒng)設(shè)備管理器中端口項(xiàng)中都能成功出現(xiàn)STMicroelecronics Virtual COM Port(COM4),但驅(qū)動(dòng)前顯示黃色嘆號(hào),表示設(shè)備安裝存在問(wèn)題的警告。
問(wèn)題:
usbd_cdc.c文件中,USBD_CDC_Init函數(shù)中存在一個(gè)USBD_malloc,可在此打斷點(diǎn)調(diào)試,pdev->pClassData為NULL??芍猰alloc并沒(méi)有申請(qǐng)到空間。
解決方法:
malloc沒(méi)有申請(qǐng)到空間,并不是USBD_malloc函數(shù)有問(wèn)題,而是系統(tǒng)設(shè)置堆空間過(guò)小,申請(qǐng)空間大于堆空間,所以無(wú)法申請(qǐng)成功。只需要將startup_stm32f429xx.s系統(tǒng)啟動(dòng)文件里的Heap_Size EQU 0x200 值高大就可以了
//======================================================================
備注::
1>在win10下運(yùn)行C:\Program Files (x86)\STMicroelectronics\Software\Virtual comport driver\Win8下的dpinst_amd64.exe就可以把驅(qū)動(dòng)安裝成功-----顯示的串口也就不帶感嘆號(hào)了!!!