日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32 usb 虚拟串口 相同_为什么说你要学习USB?(一)

發布時間:2023/12/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32 usb 虚拟串口 相同_为什么说你要学习USB?(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
來源:公眾號【魚鷹談單片機】作者:魚鷹OspreyID ??:emOsprey本篇筆記為 USB 系列教程第一篇,一共有多少篇魚鷹心里也沒底,魚鷹不會因為篇幅多而停止,會盡可能的將 USB 講透,讓你通過本系列教程入門 USB(Universal Serial Bus,通用串行總線)。當然,因為魚鷹也是用的不多,所以有些知識點可能是錯的,需要對照 USB 官方文檔確認。要想講透,大量的圖解是少不了的,不過魚鷹已經準備的差不多了,先給道友過個目好了。

魚鷹與USB的淵源

說起魚鷹和 USB 的淵源要從 2016 年開始,那個時候魚鷹花了一個月從最基本的USB硬件層開始,到STM32 模塊,再到USB協議,專注的學習了一個月(學生時間多)才勉強明白 USB 到底是個什么鬼。后來因為比賽原因不得不停止,留下上面 5000 字的筆記就暫時放下了。但是魚鷹還是心心念念著它,所以在工作后準備再次學習,還特地發朋友圈表示決心,最后還是無疾而終,不過那次學習了解了 HID 是個什么鬼。這一次魚鷹終于在工作穩定后開始全面學習 USB 了,最終目標就是實現一個 虛擬串口+ U盤+ CMSIS-DAP 調試器的復合USB設備,也就是 ST-LINK V2調試器中實現的功能。要實現這個東西可不簡單,USB 是大頭,FAT 文件系統老二,Cortex-M 調試組件知識第三,還有其它零零散散的知識點,沒有好的基礎,根本搞不定。FAT文件系統知識魚鷹已經準備好了,又是畫了大量的圖進行說明,不過到底會不會像 USB一樣寫個教程出來,那完全看魚鷹心情了,畢竟當時學完之后馬上寫會寫的比較清楚,可那個時候公眾號發展不如意,也就沒那個心思去分享了。這個隨緣吧。嘮嗑了這么多,魚鷹是想向各位道友表達一個觀點,做技術的不容易,能在技術路上走的很遠的都是勇士!要想堅持,沒有興趣是很難走下去的。很多人可能會說,這個東西網上不是都有嗎,隨便找一份源碼,改改引腳,調試器就出來了呀,為什么你要費勁巴力的又是畫圖,又是寫教程的,為的是什么?為的是以后當我想實現自己想要的功能時,我能快速實現;為的是遇到 USB 的問題時我能快速定位,這就是魚鷹的目的,也是魚鷹一直堅持的學習觀點,學透!

為什么要學習USB?

現在回到今天的主題,為什么要學習 USB?有人說串口就夠用了啊,串口簡單又容易上手,網上也能找到很多 USB 轉串口的模塊,為什么要學它呢?首先,在速度上,USB 比串口的速度要快的多,最低版本 192 KB/s,最高1280MB/s,當然這是理想速度,除去協議本身的開銷會減少部分,但總的來說,比串口快的多。(圖片來源與網上)現在大部分 USB 設備都是全速設備,即 1.5 MB/s,STM32 系列基本都支持全速以上的USB接口(有USB模塊的STM32芯片),所以速度上比串口強的多,一般 USB 轉串口的模塊速率最大也就 115200b/s,換算成字節也就是 11.5 KB/s,而且因為協議簡單,所以不存在錯誤重傳,應答等機制,如果不用485之類的,抗干擾能力也不強(USB使用差分傳輸,抗干擾強)。但這些都不是重點,重點是當你想和電腦通信時,你必須借助各種硬件(杜邦線、轉接模塊)才能實現一個最簡單的串口通信。你想用它和電腦玩點高級貨,根本無從下手。而當你掌握了 USB,只需要一個USB線,插上電腦,各種玩法就隨之而來。DIY調試器?虛擬串口?虛擬U盤?USB攝像頭?虛擬網卡?這些統統沒問題,總之你能想到的和電腦通信的設備,它基本都能實現。而這些設備的驅動、上位機你基本能找到現成的。哦,你只想做個USB鼠標、鍵盤玩玩,那資料滿天飛,掌握了 USB,輕輕松松實現。這才是通用接口應該有的樣子嘛,而串口目前在筆記本上已經基本被淘汰了,如果想用串口,不好意思,通過 USB 虛擬吧!所以,USB 學習對于今天的我們來說,必不可少!

為什么寫教程?

USB教程其實在網上有很多,非常出名的是《圈圈教你玩USB》,不過它是 2009 出版的,距今已十多年了。雖說很老,但是知識是相通的,魚鷹也是靠它學了不少東西。但是魚鷹在學習過程中,有幾個問題存在:第一:圖解很少,雖說有很多通俗的語句進行描述,但總感覺還是不甚明了第二:開發板太老,具體芯片型號魚鷹已經不記得的,因為魚鷹沒想過買這個開發板,為什么?STM32 已經集成了 USB 接口,為什么還要單獨買一個學習呢。第三:例程不夠規范,很多異常沒有考慮。確實,作為初學者而言,簡單就是最好的,但是對于魚鷹這樣的老手而言,還是需要比較規范、易讀的例程才能運用到實際產品中去,以后需求變了,改起來也方便。以上就是魚鷹在學習過程中遇到的問題點,所以針對這些問題,魚鷹想自己寫!但是因為魚鷹對于 USB 的了解還不夠多,而且也不會面面俱到的寫,所以各位道友還是需要從頭閱讀這本書(網上有 PDF,魚鷹分享的資料中也會有,有條件的可以購買正版書籍學習)。不過魚鷹會將一個 CDC (虛擬串口)例程通過圖解的方式從頭到尾講透、講徹底,讓大家真正入門 USB,這就是魚鷹寫這個系列的目的。而對于高級部分,比如虛擬U盤、調試器、HUB、OTG等部分可能會選擇付費閱讀形式進行分享(也可能不分享,看情況了,魚鷹比較佛系),畢竟這個耗費了魚鷹太多的精力。但是這些高級部分對于學習了USB基礎的道友來說,都是能自行學習的,魚鷹的筆記只不過會讓這個學習的時間縮短而已。畢竟,入門才是最難的!

怎么學USB?

魚鷹計劃將以如下學習路線分享教程:1、底層通信,USB是如何通過USB線傳輸數據的(類似串口協議部分)。(參考《USB培訓_Part1_協議.pdf》)2、STM32 中的USB模塊(參考《STM32中文手冊》)3、USB協議基礎(參考《圈圈教你玩USB.pdf》)4、CDC 通信過程詳解(參考《USB CDC類入門培訓.pdf》)通過以上講解,可以讓各位道友從下到上,有一個清晰的認識,遇到問題也更容易定位。事實上,對于嵌入式開發來說,我們其實更關注上層的東西,但是硬件上的東西還是需要作為了解性知識進行學習的,否則本來軟件沒問題,只是硬件原因導致無法通信,如果從軟件上查根本找不出問題。這里說說為什么使用 CDC 作為 USB 實戰例程呢?市面上很多開發板教程都是用鼠標、鍵盤來實戰的。確實,作為USB設備來說,鼠標、鍵盤是最常見的USB設備了,但是我們不可能拿一個開發板去當鍵盤或鼠標去實際使用吧,所以模擬一個USB鼠標和鍵盤對于我們開發人員來說,根本不實用。而串口雖說速度較低,但還是很多人在使用的,也有很多上位機支持,如果我們能通過 CDC 模擬一個串口,那么我們就可以很方便的使用目前市面上的硬件和軟件了,而且因為實質上是 USB,所以速度會更快。以前你的串口打印可能是這樣連接的:現在是這樣:省去了中間商賺差價,最大速率取決于USB本身,而不是受限于USB轉接模塊,而上位機那邊原來該怎么使用現在也怎么使用,方便簡單,你值得擁有。當然還有一個原因,對于初學者而言,要理解 HID (參考《USB-HID協議中文版.doc》)這個類還是很難的,據說這個類是所有USB類中最復雜的類,通信過程也比較麻煩,所以魚鷹選擇了 CDC 這個類講解,降低學習難度,當你掌握了USB基礎,再學其他的也就容易的多了。(以上參考資料可在后臺回復關鍵字,USB參考資料自行領取)關于CDC的例程,魚鷹已經在整理了,將盡可能的刪掉不相關的內容,讓各位道友更快的入門 USB,并且魚鷹的圖解也將基于該例程,大家到時候對照著參考就行,建議使用 SI 軟件閱讀源碼。

其他

最后說點其他的,為了更好的學習USB,魚鷹準備做一個USB開發板,STM32為核心(事實上大部分開發板都預留了USB接口),這個開發板的主要特點會是方便調試,并且購買開發板會有相應的教程提供,不過這個只是魚鷹的初步構想,到時候看情況了。目前魚鷹已經找到一位剛畢業不久、興趣相投的道友畫板,畢竟魚鷹專注于軟件,讓我畫板還真搞不定,不過這個板子不是開發板,而是其他功能,開發板到時候再看了。還有一件事,關注魚鷹的老讀者應該都知道,越是支持魚鷹,越能得到更多公眾號資源,前段時間因為可分享的資源不多,所以沒去新增資源,但這一波 USB 的資源應該會非常豐富,比如完整的 PDF 高清圖等資源可是需要條件領取的,如果不知道如何支持魚鷹的,可點擊推薦閱讀:線程CPU使用率到底該如何計算?許久以后,你會感謝自己寫的異常處理代碼終極串口接收方式,極致效率為什么說你一定要掌握 KEIL 調試方法?延時功能進化論(合集)指針,很難嗎?| 解析指針的過程與意義(一)如何寫一個健壯且高效的串口接收程序?KIEL 調試那些事兒之窗口展示——變量(二)打了多年的單片機調試斷點到底應該怎么設置?| 顛覆認知-THE END-
如果對你有幫助,記得轉發分享哦微信公眾號「魚鷹談單片機」每周一更單片機知識長按后前往圖中包含的公眾號關注

總結

以上是生活随笔為你收集整理的stm32 usb 虚拟串口 相同_为什么说你要学习USB?(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。