STM32端USB的實現
筆者使用的是最經典的STM32的芯片STM32F103C8T6, 這幾乎是市面上所有stm32最小系統板最為常用的主控MCU,由于項目需要拿出十年前的最小系統板,使用ST-Link燒錄仍然能夠使用. 我使用了ST意法半導體公司這幾年主推的STMCubeMX根據芯片直接生成基本的C代碼,并且使用ST公司HAL庫. 這里說一下HAL庫,我當年學習STM32的時候那時候基本主流都是使用庫函數版本,后來ST公司意識到移植的問題所以推出了HAL(Hardware Abstract Layer)庫,也是主推的方式,但是現在市面上仍然是寄存器版本,庫函數版本,HAL庫版本共存的狀態,這里筆者參考了youtube上面的相關視頻也是使用STMCubeMX直接生成了STM32的USB項目,并且燒錄到芯片之后
image.png
燒錄到芯片之后,芯片是可以被系統識別,拔插USB的時候系統就會有提示音.
image.png
USB的軟件端實現
當系統可以檢測到USB之后,筆者使用了LibUSBDotNet的C#來做上位機軟件,然而這里遇到了問題,使用Libusbdotnet的庫總是無法找到相關設備
UsbDeviceFinder usbFinder = new UsbDeviceFinder(DeviceVid, DevicePid);//mUsbDevice無法找到設備,一直為null mUsbDevice = UsbDevice.OpenUsbDevice(usbFinder);
由于筆者對于第一次使用HAL庫,一直不太清楚是否是沒有配置成功導致的無法找到設備,后來我在Google上搜索相關的資料,在Github上找到了一些USB軟件的項目,
關于usb調試的軟件在市面上很難招,串口調試的一堆.這里我根據搜集的資料整理了相關的項目:
最推薦: SHT
A USB HID Component for C#
HIDSharp
mikroElektronika USB(HID) Terminal
image.png
一個程序員總結的關于USB項目的合輯
當我使用SHT發現,數據是可以正常接受的,但是不清楚為什么libusbdotnet無法尋找到設備,后來繼續搜索, 終于在StackOverflow上面找到了
https://stackoverflow.com/questions/25714930/libusbdotnet-no-devices-found-when-calling-usbdevice-alldevices
image.png
截圖里面說的很明確,Libusbdotnet可以獲取的是winusb, libusb,linux Libusb v1.x,結合我原來曾經的一點印象,我感覺應該是驅動的問題,下載了libusbdotnet的項目,里面有libusb-win32 Inf-Wizard,我打開安裝驅動,出現了 system policy has been modified to reject unsigned drivers, 后來搜索發現需要使用管理員權限打開,然后順利安裝了驅動程序
image.png
image.png
此時再次拔插USB設備顯示的是如下的方式
image.png
然后我根據libusbdotnet的歷程寫了上位機測試軟件發現可以正常接受數據,此時就可以使用了.
image.png
上一篇:《嵌入式-STM32開發指南》第一部分 入門篇 - 第4章 庫開發簡介
下一篇:STM32和樹莓派串口透傳
推薦閱讀最新更新時間:2025-03-25 19:30






- 熱門資源推薦
- 熱門放大器推薦
設計資源 培訓 開發板 精華推薦
- GSH_Bed 鋁基板加熱平臺
- 具有雙輸入的 LTC3126MPFE 5V、750kHz 降壓轉換器的典型應用電路
- LDK120C15R 1.5V低壓降穩壓器典型應用(可調版)電路
- P3A9606JK-EVB: 2 通道轉換器評估板
- 用于遙控無鑰匙進入的 315MHz OOK 接收器
- 使用 ON Semiconductor 的 LV8760T 的參考設計
- 微型太陽能充電電池(PW5410B)
- 甘草酸不酸墨水屏閱讀器,適配4.2寸墨水屏
- DC1766A-A,使用 LTC6957-4 低相位噪聲、雙 CMOS 輸出緩沖器/驅動器/邏輯轉換器的演示板
- EVAL-ADuM3154Z,用于評估 iCoupler ADuM3154 數字隔離器的評估板
- 迅為IMX6開發板OTA遠程升級-SWUpdata概述和使用
- 迅為IMX6ULL開發板NFS服務器的搭建
- 迅為IMX6開發板Buildroot文件系統4G撥號上網工具測試
- 實驗分享丨迅為IMX6ULL開發板點亮第一個led燈
- 迅為-IMX6Q開發板Buildroot文件系統nfs測試
- 進步一點點丨迅為4412開發板Linux內核開發基礎
- 每天學習一點丨借助U盤或TF卡拷貝程序到迅為IMX6ULL開發板上(二)
- iTOP4412開發板-Qt初探及Qtopia2.2.0系統開發
- 每天學習一點丨借助U盤或TF卡拷貝程序到迅為IMX6ULL開發板上(一)每天學習一點丨借助U盤
- 迅為i.MX8MM開發板ARM嵌入式Linux安卓9.0工業核心板iMX8M Mini板