stm32使用虛擬串列埠通過usb向pc傳送資料怎樣提高速度

2021-06-08 18:31:51 字數 3284 閱讀 2574

1樓:刀無極啊

解決方案1:1ms之內可以多個64b的包,要看匯流排負載情況,最好的情況可以1ms可以bulk傳輸10個以上包出來,這樣有可能到600kbps解決方案2:我也覺得超過64kkb可能性比較小,那些聲稱很大的人的測試,都是譁眾取寵,沒見有完整原始碼。

解決方案3:印象裡,1ms查詢一次是hid方式,虛擬串列埠也是這樣嗎?如果也是,是否可以把時間縮短?

解決方案4:全速bulk傳輸時,理論上1幀最多傳輸19個64b的包,但是受匯流排排程影響,達不到這麼高的負載率,640kbs的速率應該還是可以達到的 解決方案5:bulk方式下可以達到600k,我的產品已經使用2年了,一直穩定。

如果用32f207,有時能夠達到1m.但是作業系統要在系統空閒的時候才可以達到1m.很多時候作業系統不允許。

不過降到600k的速度,作業系統能夠保證的。 解決方案7:主機每隔1ms就會查詢端點的中斷...

適當處理後,間隔可以降到100us一下。

如何使stm32進行usb傳輸時提高傳輸速度

2樓:速達_濟南天禹

顯示連線到非高速匯流排的usb裝置,是表示可移動裝置是支援usb2.0的但主機板的usb介面是usb1.1或一下的!

就會這樣顯示。而移動裝置是usb 1.1,主機板是usb2.

0的是不會有這個提示的! 解決方法: 1.

檢視主機板說明書最後幾頁, 在bios中有設定usb 2.0特性的選項,把它enable(使能) 應該在chipset features setup 選項裡有類似usb 2.0的東東,把它enable(使能)!

我筆記本bios沒有這麼多設定,所以只能憑記憶了! 2.有的主機板有些是usb1.

1另一些是usb2.0的介面,我有見過這樣的,所以你換個usb介面試下! 3.

重灌系統後,主機板的usb沒有安裝正確的驅動程式,安裝下主機板的驅動程式!有些主機板的usb xp自帶的驅動程式不能正常驅動 4.以上都沒有解決,重灌系統,記得驅動都要裝啊!

這個軟體問題居多!

關於stm32 usb資料採集系統,怎麼提高usb傳輸速度

3樓:

1.stm32f407zg應用  電機驅動和應用控制  醫療裝置  工業應用:plc,變頻器,斷路器  印表機和掃描器  報警系統,可視對講,暖通空調  家用音響裝置  2.

stm32f407zg概述  stm32f407zg系列是基於高效能的arm?cortex?-m4f的32位risc核心,工作頻率高達168 mhz的。

的cortex-m4f核心功能支援所有arm單精度資料處理指令和資料型別的單精度浮點單元(fpu)。它還實現了一套完整的dsp指令和記憶體保護單元(mpu),從而提高應用程式的安全性。  該stm32f407zg系列採用高速嵌入式儲存器(多達1 mb快閃記憶體,高達192 kb的sram),最多4位元組的備份sram,以及廣泛的增強i / o的連線到兩條apb匯流排和外設,兩個ahb匯流排和一個32位的多ahb匯流排矩陣。

  所有stm32f407zg裝置提供3個12位adc,兩個dac,1個低功耗rtc,12個通用16位定時器,其中包括兩個用於電機控制的pwm定時器,兩個通用32位定時器。一個真正的隨機數發生器(rng)。他們還配備了標準和先進的通訊介面。

  3.stm32f407zg引數  stm32f407zg儲存器程式快閃記憶體(kb) 1024 ram(kb) 192  stm32f407zg效能引數,工作頻率(兆赫) 168  16位定時器(ic / oc / pwm) 12(24/24/30)  32位定時器(ic / oc / pwm) 2(8/8/8)  a / d轉換器 3x12位  d / a轉換器 2x12位  通訊介面 3xspi 2xi2s 2xi2c; 4xusart 2xuart 兩個usb otg(fs + fs / hs);  2xcan 1xsdio 乙太網mac10/100 的i / o 114  電壓(v):1.

8到3.6  4.stm32f407zg封裝與引腳  lqfp144

stm32 usb虛擬串列埠 最大速度可以達到多少 波特率可以設定到多少

4樓:碧雲天書

全速可以達到900kb以上,如果外接高速phy,最高可以到32mb。

波特率不起作用,可以隨便設。

電腦如何通過usb向stm32傳送資料

5樓:匿名使用者

cubemx 支援usb cdc 配置,你可以選擇把stm32 新增虛擬串列埠功能vsp,當作一個串列埠使用。

stm32如何通過usb串列埠和電腦相連傳輸資料

6樓:匿名使用者

usb轉串列埠線,配置stm32串列埠設定,從電腦開啟串列埠工具即可

stm32虛擬串列埠 如何傳送資料

7樓:匿名使用者

是指模擬串列埠嗎?虛擬串列埠是pc端才用的。stm32那麼多串列埠(5個),應該夠用了吧

8樓:匿名使用者

usb虛擬串列埠傳送資料?

9樓:匿名使用者

哪個串列埠?虛擬指的是哪個?

請教stm32 usb虛擬串列埠一些問題

10樓:出家人詞悲

首先開啟官方demo我們開始進行移植,第一步複製我們可用的檔案,操作如下:

projects\virtual_com_port資料夾下,複製紅線部分

我為了方便演示統放在usb/src資料夾下:

現在複製usb的庫檔案,這些檔案不需要我們修改:

上圖中的檔案統一放在usb/lib資料夾下:

好了現在所需要的檔案我們以複製完了。這裡先講一下demo程式的主要工作流程:

由上圖可知,pc通過虛擬串列埠傳送資料到stm32 usb口,stm32再通過usart1傳送資料到pc串列埠。我們做專案時,只用usb虛擬串列埠即可。所以我們現在需要把串列埠傳送部分刪除。

把usb做為一個com口來使用。我們要如何使用這個usb口呢?demo中是把usb傳送資料做了一個快取,先把要傳送的資料存入快取中,然後由usb自動傳送出去。

而接收部分是直接通過串列埠透傳。我們在應用時就需要用到兩個fifo,1是傳送,這個和demo方式是樣;2是接收,接收也做一個快取,我們通過查詢來判斷是否收到新資料。這下大家應該明白為什麼使用兩個fifo了。

我這裡有寫好的fifo庫函式可直接使用queue.c檔案。

現在開始修改:

1,stm32_it.c 更名為usb_it.c刪除無用**,只保留usb中斷函式,和喚醒函式。

stm32串列埠在程式中配置時STM32串列埠在程式中配置時PA9,USARTTX和PA10,USARTRX為什麼工作模式配置成複用推輓輸出和浮空輸入??

usart串列埠,首先tx是作為輸出的,邏輯上輸出 的資料都是0或者1,也就是由高低電平來表示,推輓就是能穩定輸出1或者0。而複用,是因為這個io受的是內部的的usart模組來控制,並非是gpio暫存器來控制。至於rx設定為浮空輸入那就很好理解了,首先接收的肯定是要設定為輸入,才能檢測外界的電平,其...

關於stm32微控制器的串列埠除錯問題

估計是你的串列埠時鐘沒有初始化,所以編譯正確也沒有效果 看看我的初始化 enable usart1 and gpioa clock rcc apb2periphclockcmd rcc apb2periph usart1 rcc apb2periph gpioa rcc apb2periph afi...

我的串列埠接收到的為什麼總是0啊,stm32串列埠rx線懸空後微控制器總是收到0,為什麼

那說明你copy的串列埠沒有配置成功,如果微控制器的串列埠配置成功後,預設的管腳電平為高電平,如果你的管腳為低電平,串列埠是作為資料來接收的,所以收到0,再仔細檢視你的串列埠初始化程式,以及你的電路是否虛焊,是否電路連線有問題。我今天也遇到了這個問題,rx和tx接反了。看看 你 微控制器 的 程式 ...