娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年05月29日(星期四)

2019年05月29日 | STM32 USB學習筆記1

發布者:JoyfulSerenade 來源: eefocus關鍵字:STM32  USB  學習筆記 手機看文章 掃描二維碼
隨時隨地手機看文章

主機環境:Windows 7 SP1


開發環境:MDK5.14


目標板:STM32F103C8T6


開發庫:STM32F1Cube庫和STM32_USB_Device_Library


之前在STM32論壇里領取過一塊STM32開發板,本來以為是帶有USB模塊接口的,最后發現NUCLEO里是沒有把USB模塊外接出來的,所以就自個兒掏錢買了一塊單板,如下圖所示:


單板很簡單,單純是為了學習一下STM32的USB模塊,之所以選擇這個是因為它便宜,而且ST官方有提供USB模塊庫方便開發。


USB開發博大精深,比之串口,SPI,I2C來說多了很多東西,一個很簡單的例子就是串口,SPI,I2C都可以使用通用IO口來模擬實現,但USB卻很少有人這么做。學習USB模塊就要學習USB協議,USB協議從1.1到2.0再到3.0,現在貌似到3.1版本了都,版本更替了這么多但不影響我們學習,因為USB協議都是向后兼容的,學習了一個就夠了。STM32F103C8T6的USB模塊實現了USB2.0全速總線,符合USB2.0全速設備的計數規范,支持8個雙向端點等。


USB總線使用兩根線實現差分傳輸D+、D-,這跟485總線類似。因此,在USB總線上同一時刻只能有一個方向上的傳輸。


有關USB2.0協議規范可以從USB官網上下載,重點看第9章節即可,600多頁的文檔從頭看到尾是很枯燥的。當然如果有精力的話,整個規范都看完也是很有好處的。跟USB2.0規范相關的還有很多類規范,在開發時如果有需要再看就可以了。


一、USB器件庫概述


ST官網提供的USB文檔有STM32Cube USB器件庫,以及USB培訓的一些文檔,重點看USB器件庫文檔就好了,因為我們是把STM32的USB模塊當作從設備,當然如果STM32支持USB主機的話還有另外一個主機庫(不在這里討論)。通過查看STM32Cube USB器件庫,可以幫助我們快速理解USB模塊的架構,簡化應用開發。STM32CubeUSB設備庫在Cube中所處位置如下:



USB設備庫位于HAL驅動層之上,在開發中我們只需關注USB設備庫即可,不必關注USB設備的HAL驅動,不然USB設備庫就沒有存在的意義了。而且USB設備庫代碼是只讀的,不需要修改。


設備庫中使用的主要結構體為設備句柄,其類型為USBD_HandleTypeDef,我們不必刻意關注USB HAL驅動中USB所使用的數據結構,因為它們對于我們來說是隱藏的,只需關注設備庫曝露給我們的接口即可,設備庫是和USB2.0協議密切相關的,因此需要熟悉USB2.0文檔有助于我們理解設備庫的工作流程。


USB設備庫目錄分為兩層:一層為Core(核心層);另一層為Class(類層),目錄結構如下:



結構比較清晰,核心層是不需要動的,類層是擴展用的。


USB設備庫中核心層的usbd_conf文件是需要用戶自己實現的,用來配置USB的屬性,其各個文件的作用如下:



其中usbd_req改為了usbd_ioreq。由表7就可以看出USB2.0規范中第9章很重要。USB器件庫文檔還詳細說明了一下控制端點0,這在USB開發中是一個重要的端點。其作為默認的控制端點用于接收主機發來的各種請求,請求作為Setup包發送到設備,請求又分為標準請求和非標準請求,標準請求在控制端點0上就可處理了,對于非標準請求通過回調函數傳遞給特定類進行進一步處理。


USB設備庫的類層中各個文件作用如下:



其中的usbd_xxx_if_template文件需要由用戶實現,目前跟USB設備庫相關的文件有兩個需要用戶去實現即usbd_conf文件和usbd_xxx_if_template文件。至此USB器件庫的概述說明就完畢了,更多詳細情況查看USB器件庫文檔即可。


二、USB協議概述


USB協議中用到的一些邏輯部件:


端點:數據傳輸的最終對象


管道:主機和設備端點之間數據傳輸的模型


接口:用于描述特定的功能(有一組端點組成)


設備:由一個或多個接口組成


USB傳輸分為了3層:Packet、Transaction、Transfer,三者是由小到大,關系如下圖:



一次Transfer傳輸分為幾個Transaction,一次Transaction由幾次Packer組成。


Packet包格式如下:



所有的USB傳輸都是由USB主機發起,這點跟I2C通信有些類似。


USB的傳輸分為4類:控制傳輸、中斷傳輸、同步傳輸、批量傳輸,由此引申出4類端點類型:控制端點、中斷端點、同步端點、批量端點。



控制傳輸是雙向的,須有IN和OUT兩個方向上的端點號。其他類型的傳輸是單向的。各類傳輸差別不是很大,只是對時間的要求不同。


有關USB協議的大概情況就介紹到這,更多詳情請查閱USB2.0規范以及STM32F103的參考手冊。后面將通過VCP具體示例來分析USB開發。



關鍵字:STM32  USB  學習筆記 引用地址:STM32 USB學習筆記1

上一篇:STM32 USB學習筆記2
下一篇:最后一頁

推薦閱讀

  據麥姆斯咨詢報道,自20世紀60年代以來,激光雷達(以下簡稱LiDAR)就已經成為一種成熟技術。早期應用包括建筑和考古用途的測繪,美國宇航局(NASA)第九次載人登月任務阿波羅15號(Apollo 15)也使用了LiDAR技術來繪制月球表面圖。但是直到千禧年之初,LiDAR才引起汽車行業的關注。LiDAR具有連續和高精度3D掃描的潛力,對參與早期自動駕駛汽車開發的廠商而...
新數學加速器提高運算速度,節省電能 先進模擬外設允許設備集成更多的傳感器和用戶功能 更強的保護功能,提升數據安全性 新一代智能電子產品呈現出一些新的應用趨勢:例如增加更多的傳感器驅動功能,采用碳化硅、氮化鎵等能效更高的功率技術來節省電能等。針對這些趨勢,橫跨多重電子應用領域的全球領先的半導體供應商意法半導體推出了下一代微控制器。 針...
市調機構IDC最新的報告顯示,2020年第一季度全球可穿戴設備市場出貨7260萬部,同比增長29.7%。圖源:IDC對于在疫情期間銷量逆勢增長的原因,IDC 移動設備跟蹤器研究經理Jitesh Ubrani表示 “聽覺類設備似乎對由新冠疫情引起的市場抑制力量具有彈性。消費者要求這些設備不僅具有播放音頻的能力,而且還幫助他們提高工作效率,因為許多人被迫...

史海拾趣

問答坊 | AI 解惑

調試好的can(匯編及C語言)程序,sja1000+tja1040

調試好的can(匯編及C語言)程序,與大家分享! //************************************程序功能***************************************************//節點1向CAN節點2發送數據,數據的頭兩個字節分別是:節點1的ID和要求節點2回復的數據長度//節 ...…

查看全部問答∨

關于上拉電阻和下拉電阻的資料

雖然不是我自己整理的,但是我是綜合很多的相關資料整理的,發出來不為別的,只為養家糊口,大家看著有用的話就收藏吧! 算了 還是不賣了,來這的新手也不容易,大家實惠才是真的!…

查看全部問答∨

socket連續收發數據的問題

   是這樣的,我最近在弄socket編程方面的東西。基uC/TCPIP 的,連接是建立好了,就是收發數據有問題:我將收發函數放在循環while(1)里面,發端開始一直發,發了一會就不發了,收端只能接收一次數據,第二次循環到recv時就卡死了…… 想 ...…

查看全部問答∨

關于單片機做信號處理的問題!

看了版主的博客,自己也很想用單片機做點事情。馬上快畢業了,發現自己沒有真正學到什么本領。最近找了個項目練手。用單片機做一個光源追蹤的裝置。大體是:弄2個光敏電阻,中間放一個擋板,光照偏向任何一個光敏電阻都會引起電機轉動調整光敏電阻 ...…

查看全部問答∨

請高手幫忙將這段c語言程序改寫成匯編語言程序

#include <AT89X52.H> unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code digittab[10][8]={{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},        //0      &nbs ...…

查看全部問答∨

wince 下用evc來寫串口通信。

哪位大蝦能發給我個串口通信的實例呀??最好用EVC寫的。。感激涕零。\\ 我的郵箱6094189ye@163.com 我看到書上有CSerial 這個類,但STANDARDSDK下面沒有這個類呀。。。???…

查看全部問答∨

DOS7.1下如何通過使用USB轉串口

我的是DELL1501本本,要實現純DOS下使用串口(RS232)通信,在市場上買了個prolific USB轉串口,不知是否可行?之前試過在DOS下可以使用USB鼠標,和讀取USB軟驅(B:)里的資料!…

查看全部問答∨

真正的工作中,其實專業并沒那么重要

也是偶然看到一個節目,當初算是有炒作的因素在里面,是北大才子賣豬肉。好像是廣州那邊的,某人在九幾年的時候從政府辭職下海,前后做過房地產、醋飲料等。讓我感興趣的是,當其瞅準豬肉市場時,帶著自己手下千來口子,一齊轉型。于是那些人一齊跨 ...…

查看全部問答∨

新手請教ISP的問題

    我的電腦是筆記本,現在要ISP燒程序,用了一個BUS轉RS232的轉接卡,主控芯片是PL-2303,晶振12M,BUS轉RS232后 我設置為端口2;  現在我用的單片機STM32F103C8T6,在使用STMicroelectronics Flas ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 呼图壁县| 仁怀市| 洪江市| 浦江县| 雷州市| 游戏| 隆回县| 淮安市| 万盛区| 平阳县| 漾濞| 天峨县| 铜川市| 图片| 清河县| 莲花县| 陆丰市| 屯昌县| 青州市| 濮阳市| 台山市| 蒙城县| 虞城县| 西丰县| 东海县| 闻喜县| 沭阳县| 沅陵县| 朝阳市| 渭源县| 西畴县| 紫金县| 诏安县| 农安县| 龙岩市| 博湖县| 开江县| 中西区| 麻栗坡县| 冕宁县| 潍坊市|