我使用的波特率都是1000000,發送的位元組數是10000左右,除了電腦不一樣,其他都是一樣的。但是win7系統需要的時間是10秒左右,而win10電腦只要0,1秒左右,win7電腦的配置不比win10差啊,怎么辦,有沒有什么方法讓win7達到設定的波特率。代碼是用C#寫的。
uj5u.com熱心網友回復:
代碼沒有問題的話,建議嘗試將win7的通信埠驅動更新換成win10的版本測驗。uj5u.com熱心網友回復:
驅動貌似應該是一樣的啊
uj5u.com熱心網友回復:
怎么看驅動一樣不?uj5u.com熱心網友回復:
一點猜測,關注下.NET 框架版本。我就遇到過一次,目標機器上要安裝和你開發時候選擇一致的版本uj5u.com熱心網友回復:
這個是一樣的uj5u.com熱心網友回復:
會不會是win7系統在更新,或者運行了什么安全軟體,掃描監控什么的從任務管理器簡單看一下性能分布
uj5u.com熱心網友回復:
我試驗了兩臺win7和兩臺win10,都是這結果啊
uj5u.com熱心網友回復:
什么樣的串口能支持 1000000bps?理論上說 1000000bps 傳遞 10000byte 只需 (10000 * 10) / 1000000 = 0.1秒
但你的串口不支持那么高的波特率的話,就會使用默認的波特率 9600,因此傳輸時間 (10000 * 10) / 9600 = 10.4秒
我不知道為什么 win10 可以支持到 1Mbps(通常串口卡最高支持到 256Kbps)
但通過現象的推演,顯然問題出在設備上,而不是軟體上
uj5u.com熱心網友回復:
1000000?????人家不都是9600的居多 你這怎么這么大........
uj5u.com熱心網友回復:
我也遇到過,是驅動不一樣,更新下就好了uj5u.com熱心網友回復:
win7 系統,右鍵桌面“計算機”-》屬性-》設備管理-》埠-》右鍵
uj5u.com熱心網友回復:
什么樣的串口能支持 1000000bps?
理論上說 1000000bps 傳遞 10000byte 只需 (10000 * 10) / 1000000 = 0.1秒
但你的串口不支持那么高的波特率的話,就會使用默認的波特率 9600,因此傳輸時間 (10000 * 10) / 9600 = 10.4秒
我不知道為什么 win10 可以支持到 1Mbps(通常串口卡最高支持到 256Kbps)
但通過現象的推演,顯然問題出在設備上,而不是軟體上
uj5u.com熱心網友回復:
既然是 usb虛擬串口,那么就該檢查驅動程式是否一樣uj5u.com熱心網友回復:
哥們,那真實串口測驗吧,虛擬串口 那個本質也是一個軟體,軟體兼容性 性能 這個很難說的uj5u.com熱心網友回復:
很多軟體沒有專門的win10驅動程式的。 建議你在win10上 選擇一下.net類別庫,讓和win7一樣 再看下波特率uj5u.com熱心網友回復:
我把Data[1]改成Data[10000]就好了,發送嗖嗖地uj5u.com熱心網友回復:
mdzz , 哈哈哈uj5u.com熱心網友回復:
請問樓主找到原因嗎,我也遇到了同樣的問題,我的win10系統與win7系統硬體配制差不多,但是win7電腦上的USB轉串口傳送資料遠慢于win10,發送資料一樣,波特率一樣,程式一樣,是MFC框架寫的,百思不得其角uj5u.com熱心網友回復:
請問樓主找到原因嗎,我也遇到了同樣的問題,我的win10系統與win7系統硬體配制差不多,但是win7電腦上的USB轉串口傳送資料遠慢于win10,發送資料一樣,波特率一樣,程式一樣,是MFC框架寫的,百思不得其角
uj5u.com熱心網友回復:
解決了,我原先發送的指令是一個一個發送的,serialPort1.Write(Data, 0, 1);后來我改成serialPort1.Write(Data, 0, 100000),就發送很快了,因為win7執行一下serialPort1.Write陳述句需要10mm,所以一個位元組一個位元組的發慢死
請問樓主找到原因嗎,我也遇到了同樣的問題,我的win10系統與win7系統硬體配制差不多,但是win7電腦上的USB轉串口傳送資料遠慢于win10,發送資料一樣,波特率一樣,程式一樣,是MFC框架寫的,百思不得其角
我是用的這個指令,serialPort1.Write(data, 0, s.Length / 3);發送指定資料的長度,在win7和win10上還是有差別,win7明顯慢于win10
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/46326.html
標籤:C#
