久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3209|回復: 0
收起左側

STM32 USB 設備庫使用說明

[復制鏈接]
ID:98618 發表于 2015-12-8 03:05 | 顯示全部樓層 |閱讀模式
本篇 LAT 從控制傳輸的角度解析了運行在“USB FS IP”這款 USB 模塊上的全速 USB 設備庫的結構和用法。

背景:不同的 USB 模塊和其對應軟件包

STM32 MCU 根據系列不同,所集成的 USB IP 有所不同。本文是針對“USB FS IP”這個 USB 模塊在其編號為 STSW-STM32121 的全速 USB 設備庫的一個介紹。

USB FS IP

1. 集成于 STM32F1(除 F105/107)、STM32L1、STM32F3

2. 只支持全速(FS)下的 USB 設備角色

3. 軟件包:STSW-STM32121 (v4.0.0)

USB 設備庫結構分析

中斷處理響應所有的 USB 事件,如下圖所示。



通過控制傳輸處理標準枚舉+類相關枚舉

控制傳輸由三個 stage 組成,如下圖所示:


在控制傳輸的第一階段(Setup stage)完成后,分析 Setup 數據包 8 字節命令,提供用戶回調函數處理和應用所使用的類相關的控制命令


在控制傳輸的第二階段(IN 方向的 Data stage),處理第一階段準備好(確定了數據長度和數據起始地址)的待發送的數據;

或者在控制傳輸的最后階段(IN 方向的 Status stage)完成后,提供用戶接口做應用相關任務



在控制傳輸的第二階段(OUT 方向的 Data stage),接收數據;或者

在控制傳輸的最后階段(OUT 方向的 Status stage)完成后,提供用戶接口做應用相關任務 。



結合真實枚舉過程的傳輸來看幾個實際的例子

舉例 1: MSC 類的 Get_Max_Lun()


觸發 CTR 中斷


Setup0_Proecess –>MSC_Data_setup --> DataStageIn 即 UserToPMABufferCopy

觸發 CTR 中斷


In0_Process --> DataStageIn --> 數據已經發完 CS = WAIT_STATUS_OUT

觸發 CTR 中斷

Out0_Process -->XXX_Status_Out,這里是空函數

舉例 2: VCP 類的 Set_LineCoding()

Setup transaction(命令)

觸發 CTR 中斷 Setup0_Proecess –>VCP_Data_setup --> CS = OUT_DATA Out transaction (設置串口數據幀格式)

觸發 CTR 中斷

Out0_Process --> DataStageOut --> 數據全部讀完 CS = WAIT_STATU_IN

In transaction (取走 0 長度數據包)

觸發 CTR 中斷

In0_Process –>VCP_Status_IN,即根據數據階段得到的幀格式來配置 USART

【本文摘于ST MCU官網。供分享交流】

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线一区 | 久草网在线观看 | 国产福利av | 成人黄色小视频 | 乱色av| 精品亚洲一区二区三区 | 色片网址 | 成人xxx| 国产又黄又粗 | 亚洲一区二区 | 欧洲av在线 | 国产毛片一级 | 草草在线观看 | 亚洲123区| 免费在线观看黄色片 | 看毛片视频 | 天堂av影院| 亚洲欧美网站 | 国产激情久久久 | 日韩欧美一级片 | 色羞羞 | 九九热这里 | 国产欧美一区二区精品性色超碰 | 国产视频99 | 国产视频导航 | 一级在线视频 | 日产av在线 | av片在线免费观看 | 久久综合99 | 天天插天天插 | 欧美亚洲三级 | 免费av播放 | 欧美日韩在线一区二区三区 | 国产精品毛片一区视频播 | 91丝袜一区在线观看 | 97超碰在线免费观看 | 欧美一级黄 | 啪啪免费网站 | 国产日韩中文字幕 | 毛片在线免费播放 | 国产午夜精品一区二区三区嫩草 |