上位機用USB做虛擬串口,總算抓到一個純代碼的總結了,沒有坑的完美解決。


用libUSB來實現自己的驅動+下位機理論速度。=1M字節每秒。
達到極限速度
 
WINDOWS已經自帶虛擬串口驅動,只不過還需要一個Inf文件
方法1:直接下載一個串口inf,來修改文件。
 

方法2:用libUSB來實現自己的驅動。。。及應用。用那個工具安裝成自己定義的設備名字,應用程序就根據PID,VID來找到我們的設備,進行一系列讀寫。


 
 
下位機:
1,配置描述符的編寫,見工程代碼注釋。主要是CDC類接口用端點2,數據接口用端點1和端點3
 
 
2,Get_line_coding請求,獲取串口屬性。波特率、停止位、校驗類型、數據位數。避免移植的大小端、對齊、填充模式等問題。不用結構體,使用數組。 這是設置真實串口波特率,而虛擬串口想多快就有多快
usb_prop.c
LINE_CODING linecoding =
  {
    115200, /* baud rate*/
    0x00,   /* stop bits-1*/
    0x00,   /* parity - none*/
    0x08    /* no. of bits 8*/
  };
 
3,Set_line_coding,設置串口屬性
 
4,處理串口數據
Usb_endp.c
EP1_IN_Callback()   設備向主機輸入數據,
EP3_OUT_Callback()  主機向設備輸出數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM