我的串口想與pc機(jī)以80kbps的速率通訊,波特率115200, 直接用pc上的串口時(shí),正確工作幾秒后就會(huì)出錯(cuò),估計(jì)速率太快。
我想用轉(zhuǎn)換芯片將串口轉(zhuǎn)換為usb口, 我的串口采用最簡(jiǎn)單的三線方式,只有TX,RX,GND。
請(qǐng)問(wèn)最簡(jiǎn)單的解決方案是什么?采用ch341是不是最方便的?
謝謝各位不吝賜教!
我的串口想與pc機(jī)以80kbps的速率通訊,波特率115200, 直接用pc上的串口時(shí),正確工作幾秒后就會(huì)出錯(cuò),估計(jì)速率太快。
我想用轉(zhuǎn)換芯片將串口轉(zhuǎn)換為usb口, 我的串口采用最簡(jiǎn)單的三線方式,只有TX,RX,GND。
請(qǐng)問(wèn)最簡(jiǎn)單的解決方案是什么?采用ch341是不是最方便的?
謝謝各位不吝賜教!
用CH341就可以了.
哦,謝謝啦 :)
單片機(jī)串口以波特率115200bps與pc上的串口通訊 不會(huì)出錯(cuò),也不是速率太快的原因。 如果找不到問(wèn)題所在,換成串口轉(zhuǎn)usb也會(huì)同樣.
是要確信問(wèn)題所在. 但CH341能夠支持50bps到2Mbps內(nèi)的標(biāo)準(zhǔn)的和一些非標(biāo)準(zhǔn)的波特率,你可以試試.詳細(xì)說(shuō)明可以下載ch341ser.zip內(nèi)\INSTALL\readme.txt文檔.
xujinchen兄說(shuō)的對(duì)啊:“如果找不到問(wèn)題所在,換成串口轉(zhuǎn)usb也會(huì)同樣.”
現(xiàn)在也沒(méi)找到問(wèn)題所在,只是看到了一個(gè)現(xiàn)象,我的波特率為115200,但數(shù)據(jù)速率為80kbps, 我用串口調(diào)試助手接收時(shí)會(huì)丟失數(shù)據(jù),但用labview就不會(huì)丟失數(shù)據(jù)了,到現(xiàn)在還不知道到底是為什么, 不知道是不是串口調(diào)試助手內(nèi)的設(shè)置的緩存太小了啊
串口調(diào)試助手應(yīng)該沒(méi)什么問(wèn)題,你看你對(duì)串口調(diào)試輸出的對(duì)不對(duì)
波特率誤差大于5%就會(huì)不準(zhǔn)確了好象
2.5%
首先,對(duì)于115200bps串行數(shù)據(jù)通訊,我在單片機(jī)和PC間作過(guò)產(chǎn)品,通訊沒(méi)有問(wèn)題。 在調(diào)試時(shí)最好使用windows的超級(jí)終端,接收數(shù)據(jù)時(shí)令其保存數(shù)據(jù)到文件以便核對(duì), 因?yàn)轱@示屏上的顯示數(shù)據(jù)在高速率、大數(shù)量的情況下有時(shí)會(huì)丟數(shù)據(jù)。
至于其他的“串口助手”等軟件,用于一般的小數(shù)據(jù)量調(diào)試是可以的,高速大量傳輸時(shí) 性能比windows的超級(jí)終端差,速度明顯變慢并丟失數(shù)據(jù)。
xujunchen兄說(shuō)的“顯示屏上的顯示數(shù)據(jù)在高速率、大數(shù)量的情況下有時(shí)會(huì)丟數(shù)據(jù)”,我覺(jué)得這便是問(wèn)題所在, 因?yàn)槲矣胠abview軟件繪制波形,而不是像“串口調(diào)試助手”那樣全部顯示成文本,數(shù)據(jù)就不會(huì)丟失。 另外還有一個(gè)現(xiàn)象也能說(shuō)明是顯示數(shù)據(jù)引起的問(wèn)題,那就是“串口調(diào)試助手”顯示出錯(cuò)時(shí)如果暫停顯示(但并不關(guān)閉串口,只是不顯示出來(lái))一會(huì)兒,再繼續(xù)顯示,剛開始數(shù)據(jù)不丟失,但幾秒過(guò)后又會(huì)丟失。。。。
估計(jì)是因?yàn)轱@示太耗cpu,故在顯示時(shí)會(huì)造成接收緩沖區(qū)滿,而cpu來(lái)不及讀取,最終造成數(shù)據(jù)丟失。 但這只是我猜測(cè)而已,不知道各位對(duì)上述現(xiàn)象還有什么高見(jiàn)?
我同意9樓的,我們?cè)缦染陀龅竭^(guò),我是邊收邊點(diǎn)清除顯示才能測(cè)試大數(shù)據(jù)塊的 順便說(shuō)一下,根據(jù)WINDOWS 2000/XP實(shí)測(cè)結(jié)果,標(biāo)準(zhǔn)串口比USB串口更耗CPU時(shí)間,因?yàn)閁SB是塊傳輸,情況稍好些,而普通串口以字節(jié)傳輸為主,F(xiàn)IFO輸出是用到,輸入好象未用到,每收一個(gè)字節(jié)就產(chǎn)生一個(gè)CPU硬件中斷,115200bps時(shí)1字節(jié)是100us左右,CPU每100us中斷一次,要保存狀態(tài)恢復(fù)狀態(tài),CPU當(dāng)然忙了
嗯,樓上的講的不錯(cuò),估計(jì)就是這個(gè)機(jī)制引起的,我用labview是一次讀256個(gè)字節(jié),所以沒(méi)出錯(cuò)。
謝謝各位大俠的指點(diǎn),嘿嘿 :)