USB
用于規范電腦與外部設備的連接和通訊。是應用在 PC 領域的接口技術。
USB 接口支持設備的即插即用和熱插拔功能
發展到現在已經有 USB1.0/1.1/2.0/3.0 等多個版本。目前用的最多的就是 USB1.1 和USB2.0,USB3.0 目前已經開始普及。STM32F103 自帶的 USB 符合 USB2.0 規范。
USB驅動軟件開發
usb_core(移植過程,代碼一般不用修改)
usb_core.c
usb_croe.c 文件,該文件用于處理 USB2.0 協議。
usb_init.c
usb_init.c 文件,該文件里面只有一個函數:USB_Init,用于 USB 控制器的初始化,不過對USB 控制器的初始化,是 USB_Init 調用用其他文件的函數實現的,USB_Init 只不過是把他們連接一下罷了,這樣使得代碼比較規范。
usb_int.c
usb_int.c 文件,該文件里面只有兩個函數 CTR_LP 和 CTR_HP,CTR_LP 負責 USB 低優先級中斷的處理。而 CTR_HP 負責 USB 高優先級中斷的處理。
usb_mem.c
usb_mem.c 文件,該文件用于處理 PMA 數據,PMA 全稱為 Packet memory area,是 STM32內部用于 USB/CAN 的專用數據緩沖區,該文件內也只有 2 個函數即: PMAToUserBufferCopy和 UserToPMABufferCopy,分別用于將 USB 端點的數據傳送給主機和主機的數據傳送到 USB
端點。
usb_regs.c
usb_regs.c 文件,該文件主要負責 USB 控制寄存器的底層操作,里面有各種 USB 寄存器的底層操作函數。
usb_sil.c
usb_sil.c 文件,該文件為 USB 端點提供簡化的讀寫訪問函數。
usb_config(移植過程,重點修改)
hw_config.c
hw_config.c 文件,該文件用于硬件的配置,比如初始化 USB 時鐘、USB 中斷、低功耗模式處理等。
usb_desc.c
usb_desc.c 文件,該文件用于 Virtual Com 描述符的處理。
usb_endp.c
usb_endp.c 文件,該文件用于非控制傳輸,處理正確傳輸中斷回調函數。
usb_istr.c
usb_istr.c 文件,該文件用于處理 USB 中斷
usb_prop.c
usb_prop.c 文件,該文件用于處理所有 Virtual Com 的相關事件,包括 Virtual Com 的初始化、復位等等操作。
usb_pwr.c
usb_pwr.c 文件,該文件用于 USB 控制器的電源管理;
USB的初始化
USB_Interrupts_Config()
用于設置 USB 喚醒中斷和USB 低優先級數據處理中斷
Set_USBClock()
用于 配置 USB 時鐘,也就是從 72M 的主頻得到 48M 的 USB 時鐘(1.5 分頻)。
USB_Init()
用于初始化 USB,最主要的就是調用了 Virtual_Com_Port_init 函數,開啟了 USB 部分的電源等。
這里需要特別說明的是,USB 配置并沒有對 PA11 和 PA12 這兩個 IO 口進行設置,是因為,一旦開啟了 USB 電源(USB_CNTR的 PDWN 位清零)PA11 和 PA12 將不再作為其他功能使用,僅供 USB 使用,所以在開啟了 USB電源之后不論你怎么配置這兩個 IO 口,都是無效的。要在此獲取這兩個 IO 口的配置權,則需要關閉 USB 電源,也就是置位 USB_CNTR 的 PDWN 位,我們通過USB_Port_Set 函數來禁止/允許 USB 連接,在復位的時候,先禁止,再允許,這樣每次我們按復位電腦都可以識別到 USB鼠標,而不需要我們每次都拔 USB 線。
USB 虛擬串口的數據發送過程,通過端點1來實現的usb_endp.c(void EP1_IN_Callback (void))
USB 虛擬串口數據的接收過程,通過端點3來實現的usb_endp.c(void EP3_OUT_Callback(void))
上一篇:STM32F407使用USB作虛擬串口出現黃感嘆號
下一篇:stm32cubemx I2C讀取AT24C16
推薦閱讀
史海拾趣
隨著Eureka產品線的不斷拓展,公司開始積極拓展海外市場。通過與國際知名電子制造商的合作,Eureka的產品逐漸打入國際市場。同時,公司也積極參與國際展會和技術交流活動,提升了品牌知名度和影響力。這些努力不僅幫助Eureka擴大了市場份額,也促進了公司與國際同行的交流與合作。
璟德電子工業股份有限公司(ACX)于1998年在中國臺北板橋市正式成立,初始資本為2300萬美元。公司從創立之初就專注于利用低溫共燒陶瓷(LTCC)技術,研發與制造無線通信組件與模塊。這一技術選擇為公司日后的成功奠定了堅實的基礎。在創立初期,璟德(ACX)面臨著激烈的市場競爭和技術挑戰,但公司憑借對技術的深入理解和不懈的創新精神,逐步在行業中嶄露頭角。
隨著全球環保意識的不斷提高,ARCOTRONICS公司積極響應綠色發展的號召,致力于推動電子行業的可持續發展。公司采用環保材料和節能技術,減少生產過程中的環境污染和能源消耗。同時,公司還積極參與社會公益活動,為社會的發展貢獻自己的力量。這些舉措不僅提升了公司的社會形象,也為其贏得了更多的商業機會。
這些故事雖然基于虛構,但它們反映了電子行業中公司發展的普遍規律和趨勢。當然,真實的ARCOTRONICS公司的發展歷程可能完全不同,但這些故事可以作為一個參考框架,幫助我們理解電子行業的發展過程和公司成長的普遍特點。
ATOP Technologies自1989年創立以來,以創新、智能、整合、堅持為核心價值觀,初期主要專注于工業自動化領域的產品研發。在創立初期,公司面臨著資金緊張、市場競爭激烈等挑戰。然而,憑借著對技術的深刻理解和對市場的敏銳洞察,ATOP Technologies逐步在工業自動化領域站穩腳跟,并開始積累起一批忠實的客戶。
面對不斷變化的市場需求和技術挑戰,Fractus始終保持著對研發的重視和投入。公司擁有一支經驗豐富的研發團隊,致力于在天線技術領域進行持續的創新和探索。近年來,Fractus在微型化、多波段和智能天線技術方面取得了顯著進展,并推出了多款具有自主知識產權的創新產品。展望未來,Fractus將繼續秉承創新精神,推動天線技術的不斷發展,為電子行業的進步貢獻更多力量。
隨著公司業務的不斷發展,E Connector Solutions公司開始積極拓展市場。公司通過參加國際展會、與海外客戶建立合作關系等方式,逐步打開了國際市場的大門。同時,公司還積極實施國際化戰略,通過設立海外研發中心、生產基地等方式,加強與全球客戶的合作與交流。這些舉措不僅拓寬了公司的業務范圍,還提升了公司的國際競爭力。
本人設計的工業儀表,遇到這樣的問題:輸入信號0-20MV。當用手觸摸輸入端子的時候,顯示值會波動,這是什么干擾(好象是串模干擾),如何解決?注明:信號是經過了2個模擬開關(CD4051),由OP07放大 再采樣。… 查看全部問答∨ |
|
我現在在做一個東東,上面有一個sd卡,sd卡又有引腳連接到wince系統,這樣sd卡在wince系統中可見。 現在就相當于sd卡被wince和我的設備共享,使用時通過切換data線來實現。 問題來了,由于wince系統在sd卡插入時讀取了里面的fat表并buffer起來, ...… 查看全部問答∨ |
pxa3XX 從CF卡上啟動nk.bin 的bootloader 請問各位大俠有誰做過pxa310或者pxa270的bootloader 要求從CF卡啟動nk.bin 我應該用什么軟件來編譯,用wce6.0 還是ARM提供的AXD 是不是wce6.0下生成bootimage.nb0 就是bootloader 我用仿 ...… 查看全部問答∨ |
我嘗試著自己在fat1,fat2 中分配空閑空間,接著在dir根目錄項中添加項,目標是在c盤下新建一個xxxxxxx.txt 的文件,我嘗試著給dir各項賦了值。我用工具檢驗了,也寫進去了。 可是為什么c盤未增加相應文件?我試著重新啟動了計算機(本以為window ...… 查看全部問答∨ |
|
platform builder4.2中x86模擬器下載黑屏 提示:an unrecoverable processor has been encountered 這個問題如何解決啊??… 查看全部問答∨ |
|