源:stm32f105 usb管腳vbus的處理
對於stm32f105/107來說,為了監測usb的連線問題,程式預設是通過vbus管腳進行檢查的。但是vbus管腳和uart1的txd復用,導致我們在使用uart1傳送資料時候,usb重啟的問題。為了解決這個問題,本人查了大量的資料和諮詢了不太靠譜的stm32技術支援,一直沒有得到解決的方法。
在stm32f105資料手冊上是這樣說的「如果另乙個共享的外設要使用otg_fs_vbus引腳(pa9)或把它作為通用i/o口,必須啟用phy的斷電模式(清除otg_fs_gccfg暫存器的位16)。」這個位在程式中的定義如下:
gccfg.d32 = 0;
gccfg.b.vbussensingb = 1;
gccfg.b.pwdn = 1;
複製**
位16即為pwdn,在程式中把這個為清零後usb根本不會去檢查usb列舉,完全無法實現usb通訊,所以根據手冊解決是不行的。
我們都知道stm32f103是通過在d+管腳上加入上拉電阻實現軟連線的,那麼同樣在這個管腳上進行軟連線控制,初始化後直接把d+上拉,這樣usb檢查是沒有問題了,同時在通過uart1的txd傳送資料時,由於d+已經被上拉,所以即使vbus被拉低了但d+還是被拉高,過usb不會重啟,從而實現了usb和uart1的共用。
STM32F105 USB管腳Vbus的處理
源 stm32f105 usb管腳vbus的處理 對於stm32f105 107來說,為了監測usb的連線問題,程式預設是通過vbus管腳進行檢查的。但是vbus管腳和uart1的txd復用,導致我們在使用uart1傳送資料時候,usb重啟的問題。為了解決這個問題,本人查了大量的資料和諮詢了不太靠譜...
STM32F207 USB復合裝置
最近乙個專案需要用f207的usb做乙個復合裝置,目標是將msc和vcp裝置復合,msc裝置使用的是spiflash。根據其他人的經驗,做usb復合裝置的過程,大致上就是將兩個裝置的描述符和 融合在一起。不過做起來可是沒有這麼簡單,我剛開始把兩部分 一下子融合在一起,各種問題和錯誤,什麼描述符問題,...
STM32F3 USB除錯總結
stm32f3 usb除錯總結 經過近1周的學習和除錯,發現usb還是比較好用的,就是有點小麻煩。不過我這學習的目的主要是立馬就用的那種,對於具體的協議什麼的看得都比較淺。配置注意描述報告 全速以上d 腳要有上拉電阻,在列舉完畢後上拉 增加端點後需要新增到初始化和關閉函式裡 中斷傳輸模式直接傳就行,...