2. 程式完整範例下載連結: (使用IAR EWARM v7.7)
stm32f429_usb_hid_vcp_msc_example_code
3. main flow:
- 程式用來切換hid or vcp or msc的設定在stm32f429i_discovery.h中, 現在預設的是MSC, 而底下的KeyBoardTest/MouseTest/HidRawTest等3個define, 則是決定可以進行哪些子項目的測試, 可以全部一起打開, 也可以只打開其中一個.
main loop主要在執行button scan, 當確認到按下user button後, 根據不同的define去送出不同的資料.
- 特別需要注意的是當keyboard/mouse放開時, 需送出release key的event, 否則會看到連發key的情形出現, 而hidraw則不需要.
4. test flow:
- HID:
- keyboard test: 可以先開啟一個空白文字檔來測試, 當按下user button時, 會送出一個小寫(in lowercase letters)的a出現, 放開即馬上停止輸出.
- mouse test: 當按下user button時, 滑鼠鼠標會朝右上方移動, 放開即馬上停止輸出.
- hidraw test: 測試時, 可先安裝Bus Hound tool, 接著接上stm32f429 discovery board, 若成功則可以看到我們新增出來的usb device(ex: [44]USB輸入裝置).
按下user button後, 即可看到我們輸出的資料, 放開不需做其它處理即會自行停止輸出.
- 接著開啟終端機程式(ex: putty)
- 按下user button後, 就會看到如下的訊息開始打印.
- MSC:
- 主要操作的程式接放在usbd_storage_msd.c裡面, 包含disk size(96KB)和SRAM Init/SRAM Write/SRAM Read functions.
- 程式開始執行後, 會先馬上看到產生需要格式化的訊息出現, 這時選擇格式化磁片.
- 接著會看到磁碟的基本資訊, 大小正如同我們設定的一樣(96K RAM),按下開始執行格式化.
- 這時候去裝置管理員底下的磁碟機查看, 可以看到STM32 USB RAM-DISK USB Device.
前輩您好 ~ 我也剛在接觸USB_VCP的部分 ,只是使用您的程式時發現無法編譯成功
回覆刪除是否能在提供一次程式代碼呢 謝謝您的分享
Hello:
回覆刪除可以說一下遇到怎樣的build error嗎?
JustinWang
HI~ 前輩您好
刪除error 的部分已經自行處理掉了
原因是因為 少了一些資源的連結,例如cm4 這些檔案
只是前輩想請教您目前我使用上的一個問題尚未處理成功
我在前輩的程式中加入tim3_NVIC 後他就無法辨識USB的裝置
我在TIM3計時中斷裡 是希望每0.5秒可以讀取一次ADC後將訊號透過
USB_VCP傳輸至電腦但目前一直找不到失敗的原因
想與前輩請教一下 謝謝您的指教~~
HI~ 前輩您好
刪除error 的部分已經自行處理掉了
原因是因為 少了一些資源的連結,例如cm4 這些檔案
只是前輩想請教您目前我使用上的一個問題尚未處理成功
我在前輩的程式中加入tim3_NVIC 後他就無法辨識USB的裝置
我在TIM3計時中斷裡 是希望每0.5秒可以讀取一次ADC後將訊號透過
USB_VCP傳輸至電腦但目前一直找不到失敗的原因
想與前輩請教一下 謝謝您的指教~~
前輩您好~
回覆刪除剛剛的編譯問題已經順利解決了
原因是一些檔案的路徑遺失了,例如:cm4 這些資源檔
目前使用前輩的程式後,自行加入NVIC計時中斷後 USB就找尋不到裝置
我是想每0.5秒可讀取一次ADC的值後,經由USB_VCP傳輸至電腦
想與前輩請教一下,這部分的問題該如何除錯
謝謝您的指教~~