STM32例程之USB HID雙向資料傳輸

2021-08-15 12:55:28 字數 1158 閱讀 7425

程式功能

usb介面原理圖:

hid列舉成功:

程式效果圖

圖一 上位機程式執行圖

圖二  stm32串列埠列印輸出

圖三 bus hound抓取的資料

程式部分**

stm32的報告描述符:

const uint8_t customhid_reportdescriptor[customhid_siz_report_desc] = 

; /* customhid_reportdescriptor */

複製**

上位機測試程式

/*** @brief  傳送資料後讀取資料 

* @param  none

* @retval none

*/void hidsamplefunc(void)   

reportbuf[0] = 0; // 輸出報告的報告 id 是 0      

for(int i=0;i

reportbuf[i+1]=i+1;//將資料存放在資料緩衝區

}printf("開始寫資料到裝置...\n");

// 寫入資料到裝置,注意,第三個引數值必須為report_count+1,否則會返回1784錯誤

if (!writefile(hdev, reportbuf, report_count+1, &bytes, null))else

printf("開始從裝置讀取資料...\n");

// 從裝置讀取資料,注意,第三個引數值必須大於等於report_count+1,否則會返回1784錯誤

if(!readfile(hdev, recvdatabuf, report_count+1, &bytes, null))else

printf("裝置返回的資料為:\n");

//顯示讀取回來的資料

for(int i=0;i

printf("0x%02x ",recvdatabuf[i+1]);

}printf("\n\r");

}  複製**

from:

STM32簡單例程除錯

一 按鍵例程 key.c檔案 如下 按鍵初始化相當於gpio口的配置。步驟 時鐘設定,輸入輸出設定,io口屬性設定 include include key.h include delay.h 修改說明 按鍵初始化 void key init void 按鍵處理函式 返回按鍵值 u8 key scan...

STM32的USB例程修改步驟

我修改過的st的custom hid例程 本文中修改好的例程 以下是筆者將st的custom hid例程修改為 自定義usb裝置 例程時總結出來的,因為筆者也是剛剛學usb開發不久,某些方面理解錯誤在所難免,請各位大蝦指正。一 usb desc.c檔案 二 usb conf.h檔案 1 修改需要處理...

STM32之乙太網使用例程一

學生時代比賽喜歡用esp8266這樣的串列埠wifi模組來實現微控制器聯網功能,但其畢竟基於串列埠,提供的速度也只能供實時傳文字用,涉及影象的工程就沒辦法了,這時候,閒置的乙太網口就該發揮其作用了,畢竟能提供10 100 mbit s 資料傳輸速率。在後來的工作中,也遇到了stm32乙太網的使用,覺...