1. 串口顯示亂碼的原因有哪些
串口通訊亂碼最常見的原因就是波特率不一致導致亂碼,你檢查一下串口兩端的波特率設置是否一致。
2. 串口調試亂碼的原因
1.USB轉串口的問題
解決方法:我曾用一個12塊錢的那種U轉串,出現過亂碼,換一個好的就沒事了
2.波特率不同步的問題
解決方法:兩邊設置的波特率的一樣,會導致這樣的問題
3.在通信波特率為 38400 時,通信正常,arm 板上解受到的數據(ascII碼)顯示正常。
但是當波特率為 115200
時,解受到的數據就出現亂碼的現象!
解決方法:暫無
4.用ARM2103 給電腦發送信息,用串口高度精靈看,一直接收的都是錯誤碼
解決方法: 我用的44b0曾經出現過顯示亂碼的問題,在超級終端上顯示的;
後來才發現是在boot匯編程序里設置了主頻為60M;但是在串口初始化時用的是40M,在c語言程序里忘記重新設定主頻了
3. 通過MOXA,鏈接rs232 ,串口返回的報文是亂碼。如何解決
轉化不了,但是可以轉化成為Modbus TCP/RTU
4. SP3232串口工作時出現亂碼是什麼原因
檢查TX RX管腳的脈沖信號是否有毛刺,如果正常工作出現亂碼大多屬於這種問題.當然不排除接收信號時軟體出現的問題,希望能幫到你.
5. 串口接收到亂碼什麼原因
亂碼很正常,因為是通訊嘛,硬體的接收當然要可能出現預料外的數據,比如,有些調制方式的Modem就是會必定產生亂碼,足夠強的電磁干擾信號也可能讓數據出錯。亂碼是有的,但不存在「多餘的」這樣的概念,如果你覺得「多餘」,那隻是你通訊協議沒制定好。
串口的協議,通常情況下格式是這樣的:起始字(多位元組),數據區長度(根據需要,一般是1或2位元組),校驗和(多位元組),數據區(多位元組)。
每個包都如此,起始字一般是全部正常通訊數據中不可能用到的位元組序列組合,校驗和一般採用CRC校驗的為多(這樣比較可靠,源代碼在網上很多)。
對協議的接收分包工作,是個稍微復雜的編碼工作(代碼本身不復雜,你需要思維復雜點),你需要定義一個「接受狀態」的標志值,每接一個位元組變換一次狀態值,它標志著你下一次將接收什麼位元組,比如:起始字位元組1,起始字位元組2,……,數據區長度位元組1,數據區長度位元組2,……,校驗和位元組1,校驗和位元組2……,數據區(已經進數據區了,因為已經知道長度,只積攢緩沖而已,一個標志就夠)。積攢完數據區位元組後,計算校驗和,如果不符合前面協議給的結果,則將「接受狀態」的標志值復位(將接收起始字位元組1),從前面的起始字位元組2開始(模擬接收)重復上面過程。以上這個過程需要你熟練編碼操控二進制緩沖區。
有很多人把數據結構指針當發送緩沖,後面跟一個sizeof()就直接發出去;接收那端直接預期有多少位元組數據,死等在那裡;或者,按時間去接受(規定協議間要間隔若干秒),這些都是絲毫不懂通訊的胡作非為,早晚要出問題,如果你代碼里有這些做法,推薦你早點把它們改過來。
對串口通訊的接收,實際上用計算機處理起來是這樣的:串口是按位接收數據的,但PC機的底層硬體和軟體已經能按標准協議規定把位緩沖並識別轉換成位元組了,不過,每收一個位元組的時間遠比PC機程序運行慢得多,因此,對你的程序而言,接收的數據,其實就是一串無限長的位元組任意序列慢慢向你走來,你一次只能見到一個,任何一個位元組都與其他位元組沒什麼特殊地方,它們可能是數據包的一部分或幾個數據包,也許有的是錯的,甚至根本全是錯的,這全靠你程序去分辨——在了解了這些實際的基礎上,你才可以設計你的協議和程序。
6. USB轉232後出來亂碼怎麼解決window7系統
USB串口你自己做的嗎?
不是的話,建議不要將USB專的串口用於生產環境中.不能持續穩定工作.
亂碼可以考慮檢測線路是否存在干擾.
波特率,數據位,停止位,奇偶校驗等是否在通信口的兩端設置的一致.
換個串口卡或其他USB串口線以排除設備故障
7. 串口 MAX232 亂碼
免費 連接錯了?
TTL/CMOS數據從T1IN、T2IN輸入轉換成RS-232數據從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數據從R1IN、R2IN輸入轉換成TTL/CMOS數據後從R1OUT、R2OUT輸出。
請看 網路
http://ke..com/view/1062453.htm
8. 串口調試出現亂碼怎麼回事
中毒了,建議殺毒
9. 串口通信 出現亂碼
串口通訊不正常,我的分析如下:
一、能正常的自收自發,只能說明自身的收和發設置正確,需要檢查ARM2103的設置和電腦的是否相同。同意4樓的說法,看看校驗位,數據位數是否都對應上了。
二、波特率需要用示波器測試一下,發送一個0x55,看看,一bit用的時間,計算一下,看看波特率到底對不對。自收自發,說明收發雙方波特率相同,看不出波特率對不對,這樣就不用猜測是否是波特率的問題了。用實踐檢驗。
三、如果串口高度精靈也能自收自發,上述都沒問題,你就得考慮一下通訊電路的問題了。你的232通訊晶元如果供電是3.3V,晶元周圍的電容用的是0.1uF,可能會出現這樣的情況。你把4個0.1uF的改成1uF的試試吧,不同廠家的232晶元也會造成差異。我遇到過這種情況。如能改成5V供電就試試。
祝你順利
10. 串口接收到的數據為亂碼
亂碼的原因通常有兩個:
1、波特率 數據位 校驗位 不匹配,即網路轉串口設備與您的串口設備波特率不匹配,設置成一致即可。
2、硬體原因,注意TTL RS232 RS485這幾種電平形式是不同的,不能直接連接,需要用232晶元或者485晶元轉發,客戶最常患的一個錯誤是將TTL電平直接接到計算機上,肯定會亂碼,計算機是RS232電平。另外硬體設計不當,有干擾也可能會導致通訊不正常。仔細檢查硬體即可。
如果無法確認問題在哪,可以使用自收發的形式排除。
1、您的設備直接和電腦通訊,按照你理解的波特率相關設置,看是否正常,以確認你的設置是否有問題。
2、斷開您的設備與網路模塊之間的連接,再將模塊串口的RXD和TXD短接,通過網路發送網路接收,看數據是否正常,以確認我們的模塊工作正常。
3、斷開您的設備與網路模塊之間的連接,再將您的設備的串口收發短接,通過電腦自收自發,看數據是否正常,以確認您的電腦到串口這部分硬體工作正常。