可能感興趣的項(xiàng)目設(shè)計(jì):
(分享)USB 虛擬串口程序+PC驅(qū)動(dòng),親測(cè)可用
串口調(diào)試在項(xiàng)目中被使用越來(lái)越多,串口資源的緊缺也變的尤為突出。很多本本人群,更是深有體會(huì),不準(zhǔn)備一個(gè)USB轉(zhuǎn)串口工具就沒(méi)辦法進(jìn)行開(kāi)發(fā)。本章節(jié)來(lái)簡(jiǎn)單概述STM32低端芯片上的USB虛擬串口的移植。在官方DEMO中已經(jīng)提供了現(xiàn)成的程序,這里對(duì)修改方法做簡(jiǎn)單說(shuō)明。
首先打開(kāi)官方demo我們開(kāi)始進(jìn)行移植,第一步復(fù)制我們可用的文件,操作如下:
ProjectsVirtual_COM_Port文件夾下,復(fù)制紅線部分
我為了方便演示統(tǒng)放在usb/src文件夾下:
現(xiàn)在復(fù)制USB的庫(kù)文件,這些文件不需要我們修改:
上圖中的文件統(tǒng)一放在usb/lib文件夾下:
好了現(xiàn)在所需要的文件我們以復(fù)制完了。這里先講一下DEMO程序的主要工作流程:
由上圖可知,PC通過(guò)虛擬串口發(fā)送數(shù)據(jù)到STM32 usb口,STM32再通過(guò)usart1發(fā)送數(shù)據(jù)到PC串口。我們做項(xiàng)目時(shí),只用USB虛擬串口即可。所以我們現(xiàn)在需要把串口發(fā)送部分刪除。把USB做為一個(gè)COM口來(lái)使用。我們要如何使用這個(gè)USB口呢?demo中是把USB發(fā)送數(shù)據(jù)做了一個(gè)緩存,先把要發(fā)送的數(shù)據(jù)存入緩存中,然后由USB自動(dòng)發(fā)送出去。而接收部分是直接通過(guò)串口透?jìng)鳌N覀冊(cè)趹?yīng)用時(shí)就需要用到兩個(gè)FIFO,1是發(fā)送,這個(gè)和demo方式是樣;2是接收,接收也做一個(gè)緩存,我們通過(guò)查詢來(lái)判斷是否收到新數(shù)據(jù)。這下大家應(yīng)該明白為什么使用兩個(gè)FIFO了。 我這里有寫好的FIFO庫(kù)函數(shù)可直接使用Queue.c文件。
具體代碼修改轉(zhuǎn)至附件內(nèi)容下載。
官方demo+驅(qū)動(dòng)程序截圖: