請教linux 下ch341USB轉(zhuǎn)串口,讀串口每次read函數(shù)32個字節(jié)才會返回。

請教一個問題。 linux下利用ch341USB轉(zhuǎn)串口,讀取串口信息,手邊有個小板子需要刷卡,讀取卡的信息,我的卡里只有4個字節(jié)的數(shù)據(jù),但是刷8次,也就是32個字節(jié),read函數(shù)才會返回,我用minicom讀取數(shù)據(jù)也是一樣,所以我懷疑USB轉(zhuǎn)串口的驅(qū)動可能有問題,ch341芯片有自己的buffer,buffer大小是多少?有沒有可能是buffer滿了,才會發(fā)給虛擬的串口,這時read函數(shù)才會返回。我用select函數(shù)監(jiān)視和read函數(shù)一樣。

謝謝

沒人過來看看?


你怎么去讀數(shù)據(jù)的,讀的數(shù)據(jù)長度是多少? 把代碼貼出來看看


FD_ZERO(&fds_read); FD_SET(m_fd,&fds_read); tv.tv_sec = 30; tv.tv_usec = 0; if(select(m_fd+1,&fds_read,NULL,NULL,NULL) > 0) { if(FD_ISSET(m_fd,&fds_read)) { nread = read(m_fd,buf,sizeof(buf)); printf("read length = %d\n",nread); buf[nread] = '\0'; printf("\nbuf %s\n",buf); } }

這個是讀數(shù)據(jù)的代碼,感覺沒有什么問題。 謝謝


我很想知道,ch341在linux工作的好么?


這個問題怎么沒有下文了呢,我現(xiàn)在也遇到這樣的問題,盼快速支持,為什么windows下面沒有這個問題呢,是不是Linux驅(qū)動寫的有問題???


請問你使用的linux內(nèi)核版本是多少? 建議你直接使用linux內(nèi)核代碼,我們測試過沒有問題!


linux 2.6.39,用的就是內(nèi)核自帶的ch341的驅(qū)動,就是存在這個問題,只有發(fā)滿32個字節(jié)才能讀到數(shù)據(jù)...


我也遇到同樣的問題,用的各種linux下接收串口數(shù)據(jù)的程序,都是要收到32個字節(jié)才有反應(yīng)。而且打開串口的時候,如果上位機串口正在接收數(shù)據(jù),那么收到的數(shù)據(jù)會出錯,這種錯誤應(yīng)該是串口數(shù)據(jù)幀部分丟失后,后面接收的數(shù)據(jù)直接填充后造成的。這個應(yīng)該是驅(qū)動的問題,官方能不能出個驅(qū)動解決一下?


用pl2303的就沒這樣的問題,而且也能一個數(shù)據(jù)一個數(shù)據(jù)的收,數(shù)據(jù)接收也不會亂到出錯。難道要改板子換芯片?操作系統(tǒng)是ubuntu 12.10


我測試一下,如果問題存在,會盡快解決問題!


測試系統(tǒng) : fedora15(虛擬機) 測試硬件 : ch340t 測試軟件 : sct 測試流程 : 把DB9的2腳和3腳短接自發(fā)自收測試,發(fā)送了10個字節(jié)數(shù)據(jù)1234567890(字符),結(jié)果成功接收了10個字節(jié)數(shù)據(jù)1234567890(字符)


我也遇到同樣的問題,我在2.6.32內(nèi)核上試的,也是只能一次接收32個字節(jié) 能否麻煩CH34X再確認下這個問題


或者能否提供你驗證通過的程序代碼,我們拿過來自己編譯下,看看是不是能解決這個問題


請給個郵箱,我發(fā)送給你!


個人信息保護,已隱藏 謝謝!


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频