0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

USB開發(fā)的這個(gè)錯(cuò)誤你犯了嗎

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-24 12:31 ? 次閱讀

1.概述

我們已經(jīng)對(duì)USB硬件和數(shù)據(jù)的四種傳輸類型有了一個(gè)基本的了解。

控制傳輸(Control Transfers

批量傳輸(Bulk Data Transfers)

中斷傳輸(Interrupt Data Transfers)

同步傳輸(Isochronous Data Transfers):

下面我們通過(guò)一個(gè)例子看一下USB的具體工作過(guò)程。在此我們用一個(gè)比較實(shí)用的例子,就是把我們的板子用USB連接至PC,然后在PC端出現(xiàn)一個(gè)模擬串口,通過(guò)串口助手打開這個(gè)串口,然后實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸。最后我們聊一下很多工程師都會(huì)忽視的USB認(rèn)證問(wèn)題。

2.例程

我們打開ST的Cube庫(kù)中的CDC例程:

STM32Cube_FW_F1_V1.8.0ProjectsSTM3210C_EVALApplicationsUSB_DeviceCDC_StandaloneMDK-ARMProject.uvprojx

這個(gè)例程用到USB的同時(shí)還會(huì)用到USART,USB從PC端收到數(shù)據(jù)后會(huì)轉(zhuǎn)發(fā)到USART,從USART接收到消息會(huì)上傳至PC。我們可以把USART的TX和RX短接,這樣從PC端下發(fā)的數(shù)據(jù)會(huì)原樣回傳給PC端。

這個(gè)例程使用的硬件是STM3210C-EVAL,原理圖可以在stmcu.org.cn找到。如果我們使用的是其它板子,就需要在這個(gè)工程基礎(chǔ)上做一些改動(dòng)。比如現(xiàn)在我們使用STM32F105RBT6,8M晶振,串口用PTA2,PTA3,那么我們的要做如下修改:

首先,修改使用的MCU

然后修改時(shí)鐘初始化部分。下圖為STM32F105時(shí)鐘模塊示意圖。USB工作需要48MHz的時(shí)鐘。

(STM32F105xx Datasheet)

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44456

    瀏覽量

    631027
  • 數(shù)據(jù)傳輸
    +關(guān)注

    關(guān)注

    9

    文章

    1746

    瀏覽量

    64337
  • USB開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    9700
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    解決USB音頻DAC和解碼器設(shè)計(jì)中的計(jì)數(shù)錯(cuò)誤

    電子發(fā)燒友網(wǎng)站提供《解決USB音頻DAC和解碼器設(shè)計(jì)中的計(jì)數(shù)錯(cuò)誤.pdf》資料免費(fèi)下載
    發(fā)表于 10-21 10:03 ?0次下載
    解決<b class='flag-5'>USB</b>音頻DAC和解碼器設(shè)計(jì)中的計(jì)數(shù)<b class='flag-5'>錯(cuò)誤</b>

    高性能USB轉(zhuǎn)串口適配器,助力的嵌入式程序開發(fā)!讓USB和串行接口輕松實(shí)現(xiàn)雙向通信!

    多功能數(shù)字接口轉(zhuǎn)發(fā)器,讓USB和串行接口輕松實(shí)現(xiàn)雙向通信! 高性能USB轉(zhuǎn)串口適配器,助力的嵌入式程序開發(fā)! USB轉(zhuǎn)串口適配器可編程
    的頭像 發(fā)表于 08-06 09:54 ?162次閱讀

    一文讀懂CAN控制器錯(cuò)誤處理的原理

    “被動(dòng)錯(cuò)誤標(biāo)志”。站檢測(cè)到無(wú)論是位錯(cuò)誤、填充錯(cuò)誤、形式錯(cuò)誤,還是應(yīng)答錯(cuò)誤,這個(gè)站會(huì)在下一位時(shí)發(fā)出
    的頭像 發(fā)表于 04-26 08:25 ?1431次閱讀
    一文讀懂CAN控制器<b class='flag-5'>錯(cuò)誤</b>處理的原理

    【外設(shè)移植】USB鍵盤+M61開發(fā)

    這篇開始使用 M62 板子來(lái)實(shí)現(xiàn) USB 的設(shè)備開發(fā),首先從最簡(jiǎn)單的 USB HID 鍵盤開始。固件的 SDK 使用的是 CherryUSB 開源 USB 固件。CherryUSB 是
    的頭像 發(fā)表于 02-26 11:31 ?1641次閱讀
    【外設(shè)移植】<b class='flag-5'>USB</b>鍵盤+M61<b class='flag-5'>開發(fā)</b>板

    vb運(yùn)行時(shí)錯(cuò)誤429不能創(chuàng)建對(duì)象

    VB運(yùn)行時(shí)錯(cuò)誤429代表不能創(chuàng)建對(duì)象的錯(cuò)誤。這個(gè)錯(cuò)誤可能會(huì)發(fā)生在使用CreateObject函數(shù)或New關(guān)鍵字創(chuàng)建對(duì)象時(shí)。 這種錯(cuò)誤通常發(fā)生
    的頭像 發(fā)表于 01-09 11:07 ?1994次閱讀

    CMOS設(shè)置錯(cuò)誤的解決方法

    CMOS設(shè)置錯(cuò)誤的解決方法? CMOS是計(jì)算機(jī)中的一塊電路,用于存儲(chǔ)電腦的基本配置信息。如果設(shè)置錯(cuò)誤,可能會(huì)導(dǎo)致計(jì)算機(jī)無(wú)法正常啟動(dòng)或運(yùn)行,因此需要盡早解決。本文將為詳細(xì)介紹如何解決CMOS設(shè)置
    的頭像 發(fā)表于 12-28 15:13 ?7533次閱讀

    電源時(shí)序控制的正確方法,掌握了嗎

    電源時(shí)序控制的正確方法,掌握了嗎?
    的頭像 發(fā)表于 12-15 09:27 ?1212次閱讀
    電源時(shí)序控制的正確方法,<b class='flag-5'>你</b>掌握<b class='flag-5'>了嗎</b>?

    USB調(diào)試模式是什么意思?USB調(diào)試模式有什么用?

    USB調(diào)試模式是什么意思?USB調(diào)試模式有什么用? USB調(diào)試模式是一種在Android設(shè)備上進(jìn)行開發(fā)、測(cè)試和調(diào)試的模式。當(dāng)設(shè)備處于USB調(diào)
    的頭像 發(fā)表于 12-11 11:06 ?9847次閱讀

    IGBT和MOSFET該用誰(shuí)?選對(duì)了嗎?

    IGBT和MOSFET該用誰(shuí)?選對(duì)了嗎
    的頭像 發(fā)表于 12-08 18:25 ?2230次閱讀
    IGBT和MOSFET該用誰(shuí)?<b class='flag-5'>你</b>選對(duì)<b class='flag-5'>了嗎</b>?

    肖特基二極管,真的用對(duì)了嗎?

    肖特基二極管,真的用對(duì)了嗎?
    的頭像 發(fā)表于 12-07 14:27 ?505次閱讀
    肖特基二極管,<b class='flag-5'>你</b>真的用對(duì)<b class='flag-5'>了嗎</b>?

    【ELF 1開發(fā)板試用】+ 3.2 USB攝像頭連接測(cè)試 + Ubutu SSH連接

    攝像頭,后面會(huì)基于這個(gè)控制部件,來(lái)進(jìn)行一個(gè)簡(jiǎn)單的開發(fā)控制; 未插上時(shí)USB總線狀態(tài): 插上設(shè)備后USB總線狀態(tài): 查看USB攝像頭支持的分辨
    發(fā)表于 12-06 15:37

    腳本錯(cuò)誤scripterror怎么解決

    分析和排查。以下是一些常見的解決腳本錯(cuò)誤的方法: 檢查語(yǔ)法錯(cuò)誤: 仔細(xì)檢查腳本中的代碼,看是否有拼寫錯(cuò)誤、缺少分號(hào)、括號(hào)不匹配等語(yǔ)法錯(cuò)誤。 在一些集成
    的頭像 發(fā)表于 11-26 14:46 ?7138次閱讀

    codeblocks環(huán)境錯(cuò)誤解決辦法

    CodeBlocks是一款常用的集成開發(fā)環(huán)境,用于編寫、編譯和調(diào)試C、C++等程序。然而,有時(shí)在使用CodeBlocks時(shí)可能會(huì)遇到一些錯(cuò)誤或問(wèn)題。本文將為提供一些常見CodeBlocks環(huán)境
    的頭像 發(fā)表于 11-26 09:37 ?5618次閱讀

    USB連接MCU的:哪個(gè)更適合的下一個(gè)設(shè)計(jì)?

    幾乎所有的現(xiàn)代系列MCU具有USB外設(shè)。因?yàn)?b class='flag-5'>USB是一個(gè)標(biāo)準(zhǔn)的,則可能期望所有USB實(shí)現(xiàn)都是相同的。如果是的話,會(huì)通過(guò)各種符合標(biāo)準(zhǔn),而且還提供了額外的功能和特性,可能只是做一個(gè)特定的
    的頭像 發(fā)表于 11-03 16:17 ?814次閱讀

    STM8的開發(fā)環(huán)境是什么,現(xiàn)在MDK支持STM8的開發(fā)了嗎

    STM8的開發(fā)環(huán)境是什么,現(xiàn)在MDK支持STM8的開發(fā)了嗎
    發(fā)表于 10-28 06:02