導航:首頁 > 操作系統 > 單片機與RM04不能正常通信

單片機與RM04不能正常通信

發布時間:2022-05-09 04:32:02

單片機和儀器485通信的問題,分別供電的時候,485通信正常,使用同一個電源供電的時候,無法通信。

多半是干擾引起的,電源濾波、地線沒走好都可能出這類問題,也可能你的485迴路或者軟體協議比較脆弱,容易被干擾。
建議第一步先 檢查:RS485匹配電阻接了嗎,例如接120歐

⑵ 單片機之間串口通信異常

產品測:9600,e,8,2, 單片機測:9600,N,8,1
這很明顯兩者的通信模式不同,當然就不能正常通信了,產品的通信模式是兩位停止位,可單片機只能有一位停止位,那個校驗位,對於單片機倒是可以做到,可停止位不好解決。產品的通信模式能不能設置,最好設置成1位停止位。

⑶ 單片機串口通信時而正常,時而不正常,硬體沒問題,應該是時序問題,一般會有什麼時序問題呢

問題原因可能是如下幾個方面:
1、是否使用的是USB轉串口的轉換線?這種方式目前出問題太多了,系統正常運行狀態下還好點,如果單片機設備頻繁上下電問題就特別多,而且好像沒有太好的解決方法。
2、通訊雙方的協議是否不匹配?波特率不說了,還有比如是否都是1個起始位+8個數據位+1個停止位,二者應一致。
3、PC機一端問題。這種可能性不大,如果使用的是串口調試助手之類的軟體就更不會有問題。
4、單片機一端軟體可能有問題。而且問題出在接收時的可能性較大。具體的:
a、在軟體流程中是否有對REN控制位修改的指令?如果有需要檢查當REN=0時的相關語句。
b、應特別關注TI的清零操作。接收時RI有效後將數據讀入內存、清RI標志,即可退出接收操作;而發送時【最後1個位元組送入SBUF後,發送操作並未完成】,【必須等待這次發送完成後TI置位,然後清0】,才能根本上保證下次操作的正確性的情況。
c、如果串口收發未使用中斷方式,需要檢查主程序流程中是否有較長時間的延時程序,會不會造成數據接收遺漏的情況。以9600波特率為例,1個位元組的發送或接收需要差不多1ms的時間,延時操作如果有超過1ms的就可能會造成數據丟失。
d、其它中斷處理軟體是否會長時間佔用CPU資源,使得串口數據的接收出現數據丟失情況?串口如果採用了中斷,其中斷級別是否是高級別?
5、設備運行環境。是否有外部強電磁干擾?比如電機的起停。處理方法就說不清了。

⑷ 51單片機與PC進行串口通信,可以燒寫,但是不能通信

首先,別亂試MAX232周圍的那四個電容,根據MAX232的數據說明書里規定這四個電容必須是1uF的,並且最好是帶極性的電解電容(耐壓至少16V以上)。
既然能進行ISP在線編程燒寫程序進去,那說明硬體是沒有問題。你的程序在開發板上實現過,但能確認開發板的串口電路和你現在用的ISP電路是一樣的么?
還有,計算機上的串口接收軟體也沒設置好也收不到數據的!
如果懷疑是串口硬體電路的問題,可以做這樣的實驗,就是讓把單片機拔出來,MAX232留著,PC上的串口發送數據,然後把原本接單片機TXD和RXD的兩個數據引腳短路,看看PC上的接收軟體是否能接收到直接發送並返回的數據,如果能成功,則證明串口硬體電路沒問題。
串口通訊有的時候要求很多,你先實驗一下能不能單片機只給PC發送數據。然後再試把數據從PC發下去,讓單片機返回數據。
還有問題可以發網路HI的信息給我。

⑸ 單片機與串口通信無法正常工作...

2個原因,一個軟體問題,一個硬體問題。
首先在確保硬體沒有問題的情況下,檢查是不是軟體問題。
一般的大多是軟體問題。

⑹ 兩個單片機UART通信不能正常進行

單片機串口可以在115.2k可靠傳輸,不要懷疑波特率,如果你的波特率計算真的沒有錯誤的話;
從你的條件不會退出能通信的結果,肯定有的細節你沒有說明,不知是什麼;
如果真的如你所說,只能讓一片單片機不斷的發,示波器監視發送是否正常;串口助手給另一片單片機發數據,看接受是否正常,一步步來。
如果還沒問題就是看你的線是否過長,是否有干擾等

⑺ 我要用HLK-RM04模塊控制單片機部分,現在要寫一個控製程序,誰懂,求教

這么簡單的程序,自己就可以焊板子了。。做個核心板+max232cpe加個串口就行。

⑻ 52單片機與GSM模塊通過rxd與txd連接中,出現單片機與GSM之間不能正常通信,望大神賜教

GSM跟52分開測試
GSM通過PC調試 這個主要是檢測GSM模塊的好壞而已
52通過PC調試主要是查看52通過串口發送的AT指令是否是正確格式

⑼ 單片機與電腦不能通訊

你恰好把RXD和TXD管腳焊反了。對於PC機:
2腳為RXD接收232端子,應該連接到晶元的14腳。晶元的11腳連接到單片機的TXD管腳。
3腳為TXD發送232端子,應該連接到晶元的13腳。晶元的12腳連接到單片機的RXD管腳。

⑽ 請問大神,我用STM32與RM04進行串口通信的時候,為什麼STM32都接收不到數據

void halRfSendPacket(INT8U *txBuffer, INT8U size)

{

halSpiStrobe(CCxxx0_SFTX);//清空緩沖區

halSpiWriteReg(CCxxx0_TXFIFO, size);//這個必須要

halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size); //寫入要發送的數據

halSpiStrobe(CCxxx0_STX); //進入發送模式發送數據

// Wait for GDO0 to be set -> sync transmitted

while (!(GDO0));

// Wait for GDO0 to be cleared -> end of packet

while (GDO0);

//halSpiStrobe(CCxxx0_SFTX);

}

閱讀全文

與單片機與RM04不能正常通信相關的資料

熱點內容
java手動釋放內存 瀏覽:867
迷你世界怎麼自己創伺服器 瀏覽:810
cmd命令不能運行 瀏覽:297
最新pdf閱讀 瀏覽:755
c語言中的排序演算法 瀏覽:596
php原生鏈接資料庫 瀏覽:44
web前端後端程序員 瀏覽:24
萬能zip的壓縮包怎麼解壓 瀏覽:40
國內動漫用什麼app看 瀏覽:353
樹莓派高級編程 瀏覽:928
30歲學編程晚嗎 瀏覽:68
解壓專家怎麼打開 瀏覽:86
php開源留言板 瀏覽:49
新鄉市區疫情怎麼查詢app 瀏覽:158
我的世界伺服器怎麼弄圖 瀏覽:999
vc6的編譯框 瀏覽:198
程序員寫照 瀏覽:539
怎麼退出github伺服器版本 瀏覽:797
雲伺服器sip 瀏覽:910
對稱平衡型壓縮機 瀏覽:953