兩個微控制器UART通訊不能正常進行

時間 2021-10-14 21:22:44

1樓:自由飛翔就是我

微控制器串列埠可以在115.2k可靠傳輸,不要懷疑波特率,如果你的波特率計算真的沒有錯誤的話;

從你的條件不會退出能通訊的結果,肯定有的細節你沒有說明,不知是什麼;

如果真的如你所說,只能讓一片微控制器不斷的發,示波器監視傳送是否正常;串列埠助手給另一片微控制器發資料,看接受是否正常,一步步來。

如果還沒問題就是看你的線是否過長,是否有干擾等

2樓:一萬光年

通訊最好用11.0592m的晶振,波特率要一致,硬體連線要正確,

接下來就是程式的問題了

3樓:匿名使用者

我用誤差7%的都沒有影響 首先看你波特率對了沒 沒對檢查波特率設定 然後檢查傳送快取是否存進傳送的資料 沒有查為什麼沒有傳送 有檢查從機是否收到資料 沒有查線路 有查接受端程式是否配置好 有條件的話用示波器看看也可以~~~

4樓:敖海均

一兩米之內的話可以直接相連,都是ttl電平,距離長了就不行了。

做雙機通迅最重要的是:波特率相同,首先你得確認微控制器的每一片是否工作了?接上電腦用除錯助手調下吧

5樓:

rxd和txd交叉直接相連的導線不能太長,太長要經過232或者485電平轉換

6樓:匿名使用者

應該不會

遇到這種問題時,應該先掐波形,看看訊號發出去沒。

微控制器之間串列埠通訊異常 20

7樓:匿名使用者

產品測:9600,e,8,2, 微控制器測:9600,n,8,1

這很明顯兩者的通訊模式不同,當然就不能正常通訊了,產品的通訊模式是兩位停止位,可微控制器只能有一位停止位,那個校驗位,對於微控制器倒是可以做到,可停止位不好解決。產品的通訊模式能不能設定,最好設定成1位停止位。

8樓:匿名使用者

在微控制器系統能正常工作的情況下:

1、檢查晶振

2、檢查rx和tx的狀態

3、檢查rs232通訊晶片

看你發的資料,電腦和微控制器的設定不一致

9樓:匿名使用者

為什麼不將停止位都設為1?

從你敘述中看來,不僅僅是兩塊微控制器,而且硬體電路都不一樣。所以你需要查查硬體電路的問題。

關於微控制器rs232串列埠無法通訊的問題

10樓:匿名使用者

微控制器+rs232通訊模組實現modbus rtu串列埠通訊

11樓:匿名使用者

應該是電源問題造成的,穩壓不好,在220v電壓變化時紋波太大。

12樓:匿名使用者

微控制器通過rs232串列埠 與pc 通訊,一般來說應該不成問題的,現在的微控制器應該抗干擾也是不成問專題的,屬你可以 先試試 不接 強電,光控制繼電器,和其它的所有正常操作,如果這樣正常,

才能說明干擾問題,否則可能是軟體問題。用排除法找到問題的所在。

13樓:匿名使用者

微控制器的du微控制器通過序列zhirs232 pc通訊,一般來說,dao不應該是一個專問題屬,應該抗干擾性是沒有問題的,

如果這是正常的,你可以嘗試不接強電的光控繼電器,和所有其他的正常工作,

來說明干擾問題,也可能是一個軟體問題。消除使用過程中發現問題出在**。

14樓:

微控制器的微來控制器通過序列rs232 pc通訊,源一般bai來說,不應該是一個問題,du應該抗干擾性是沒zhi有問題的,dao

如果這是正常的,你可以嘗試不接強電的光控繼電器,和所有其他的正常工作,

來說明干擾問題,也可能是一個軟體問題。消除使用過程中發現問題出在**。

15樓:匿名使用者

微控制抄器的微控制器通過序列rs232 pc通訊,一般來說,不應該是一個問題,應該抗干擾性是沒有問題的,

如果這是正常的,你可以嘗試不接強電的光控繼電器,和所有其他的正常工作,

來說明干擾問題,也可能是一個軟體問題。消除使用過程中發現問題出在**。

16樓:匿名使用者

可以bai用排除法試驗一下du,先把光耦拔掉,看看微控制器給zhi導通電壓後dao,通訊是否正常,如果正回常則說明答程式沒問題;

把光耦插上,去掉繼電器,如果光耦導通後通訊仍正常,則可能是強電干擾問題

此時可以把通訊速率調低一下再試試(速率低了抗干擾能力也會增強),資料線也不要太長,同時最好把弱電和強電用地線隔開,強弱電距離要儘量遠,以增加電路抗干擾能力.

「微控制器串列埠通訊,串列埠助手除錯收發都正常,接到一塊就不正常」請問您是怎麼解決的?謝謝

17樓:匿名使用者

每片微控制器單獨與串列埠助手通訊成功。說明你的2個微控制器串列埠通訊都很正常,

但2個微控制器合在一起就通訊不成功,傳送、接受不到資料!很可能是以下原因:

1)仔細檢查2片微控制器的腳,rx tx 交叉接且要共地。

2)串列埠助手通訊是採用中斷接收觸發訊號的,反應迅速且準確,你微控制器也可採用外部中斷作觸發,用定時器來讀取資料,一般比較迅速準確。

3)你可以傳送0x55 或 0xaa,這樣的值來確定接收資料是否會正常。

如果還是不行,你用示波器監視下,看看資料傳送口是否有資料傳送?

18樓:

通常的解決辦法 第一步都是把問題現象描述清楚,文字描述,必要的截圖,**等。

有時,在描述問題的過程中,自己的明白了問題所在和解決辦法。

19樓:匿名使用者

再說說具體的問題 怎麼連的

20樓:16溫柔

用"mx虛擬串列埠"試試,

有詳細講解各種功能

51微控制器串列埠通訊是全雙工的,但是為什麼又說它的傳送和接受不可以同時進行呢

21樓:仁昌居士

51微控制器串列埠通訊是全雙工的,

傳送和接受可以同時進行。不可以同時進行的是半雙工。

全雙工方式分別由兩根不同的傳輸線傳送資料時,通訊雙方都能在同一時刻進行傳送和接收操作,通訊系統的每一端都設定了傳送器和接收器,因此,能控制資料同時在傳送和接受兩個方向上傳送。

半雙工使用同一根傳輸線既作接收又作傳送,雖然資料可以在兩個方向上傳送,但通訊雙方不能同時收發資料。採用半雙工方式時,通訊系統每一端的傳送器和接收器,通過收/發開關轉接到通訊線上,進行方向的切換,因此,會產生時間延遲。收/發開關實際上是由軟體控制的電子開關。

22樓:匿名使用者

他的意思是說因為cpu不可以同時發出傳送和接受指令,且傳送暫存器只能寫入而接受暫存器只能讀取,所以給這兩個暫存器賦予同一地址。

其實傳送和接收可以同時進行。

23樓:匿名使用者

串列埠有不同的工作方式,方式0不能全雙工,其它的都可以全雙工工作。傳送sbuf和接收sbuf地址是一樣的,但是物理空間是分開的

24樓:匿名使用者

寫這段話的人是不懂裝懂。

收和發用同一個暫存器地址,主要是為了節約地址,8051內部的暫存器地址範圍不多。收和發分別對應讀和寫兩種操作,是完全可以區分開的。而且微控制器讀寫暫存器的速度比串列埠傳送快多了,所以用一個暫存器是完全足夠的。

25樓:**尼奇

全雙工就是可以同時傳送和接受的意思。

你的說法很可能是將全雙工和半雙工搞錯了。

26樓:匿名使用者

收發共用同一個sbuf,同時進行肯定要產生資料衝突的。程式是可以同時執行收發,但資料都衝突了就沒意義了

27樓:匿名使用者

51微控制器在同一時間只可以執行一條程式吧?

28樓:

沒道理,能不能把原話貼出來看看

29樓:2000心安

51的串列埠通訊是全雙工沒錯,但是51的cpu本身沒辦法同時收發資料,簡單說就是它用不上串列埠的全雙工功能。

兩個微控制器能不能不通過兩個max232直接連線進行串列埠通訊?

30樓:匿名使用者

當然是可以的,記得tx和rx要交叉,但如果你微控制器想要接電腦的rs232口就不行了

31樓:匿名使用者

當然可以了。串列埠,並口都是可以的。只要兩個引腳工作時候的驅動電壓相同就行,實際上用兩個max232相當於做了一個電平轉換。不過你要提前定義好通訊協議的。

32樓:匿名使用者

可以直接將兩微控制器的uart口連線通訊,沒問題。只是通訊距離近些,就幾十米,抗干擾能力差。

33樓:匿名使用者

完全可以,方法:作出兩組微控制器+232模組,然後用三根線連線,就可以了.三根線中一根是地線,那兩個就是傳送和接收了.

34樓:匿名使用者

當然 可以!

為什麼不 呢?

問題 是 近距離 可以,遠 了 就 不行!

35樓:匿名使用者

可以,兩個復微控制器之間通訊的方法制多了,隨bai便那個引腳接在一起du就可以通訊了。zhi只要你提前定好兩個晶片之間dao通訊時約定的通訊協議就行了,也不一定非要用什麼串列埠,用並口都行。比如用外部中斷引腳來確定有資料輸入,然後在中斷處的時候去讀提前定義好的引腳資料。

你能問這樣的問題,只能說明你的微控制器知識還是學前班水平。個人建意你不要搞這行了。

關於uart串列埠通訊的幾個問題(微控制器與電腦之間的通訊)

36樓:匿名使用者

1.接收

資料是硬體電路自動完成的,是按設定的波特率對接收引腳rxd進行取樣得每一位資料,8位資料是累計得到的。並不是要等結束才去取資料的。

2.按規定串列埠的資料位數,當接收到停止位後,接收就完畢了。

3.傳送資料,可以中斷方式,也可以查詢方式。不管什麼方式,並不是連續的。那就是每傳送一位都是由程式控制的,只有執行sbuf=傳送資料,才開始傳送的。

常說的連續傳送,是指連續執行傳送指令。

微控制器的雙串列埠通訊怎樣能讓兩個串列埠不互相沖突?

37樓:匿名使用者

一個用t1產生波特率,一個用自帶的brt發生器產生波特率;一箇中斷的時候立即關總中斷,避免另外一個造成中斷重入,中斷完成後開總中斷;這樣就能完全避開衝突。比如stc12c5a60s2或者nxp的p89lpc952都是雙串列埠的,我都用過。

38樓:匿名使用者

兩個用相同的波特率,都用brt可以,沒問題的,我用115200都沒事,沒出現過有衝突發生,只是注意在兩個序列中斷中別寫太長語句,尤其是傳送語句絕別寫在串列埠接收中斷中。

怎麼實現兩個微控制器之間的串列埠通訊

39樓:匿名使用者

兩個微控制器之間

串列埠通訊,如果是用proteus**,最簡單了,兩個微控制器的rxd,txd交叉連線就行了。回要是實物最好用rs232連線通訊,距離可以達到幾十米。再遠點距離,用rs485連線通訊。

總之,方法很多的,答也很靈活的。

40樓:匿名使用者

看書,書上大把

先設定同樣的波特率,再寫串列埠中斷服務子程式,或是自己重新收發標誌位,微控制器rxd和txd交叉連線

41樓:匿名使用者

設定相同的波特率,根據標誌位檢測是否有資訊,前提是硬體工作要做好

51微控制器UART通訊問題

定時器1工作在自動重灌模式時,不需要軟體加以干預,就可以為uart的波特率提供連續穩定的時鐘。之所以只能用定時器1作為uart的波特率時鐘,這是由微控制器內部硬體所決定的。但並不是定時器1工作在自動重灌模式時才成為uart的波特率,定時器1工作在其它模式也可以為uart提供波特率時鐘,比如工作在模式...

微控制器中兩個for語句是如何執行的

寒冬為雪 這兩個for語句相同。是起一個延時的作用,最初i 0,i 0 30000,繼續執行,i 即i自加1為i 1,然後i 1,i 1 300000,繼續執行i 直到i 30000跳出for語句,這個過程微控制器執行需要時間,就起到了一個延時的作用。 懂你的大佬 揭靈韻 這個很重要,第一,如果是編...

51微控制器同時使用兩個計時器的問題

同時用兩個中斷肯定會衝突 定時器1完全可以不用,主程式只管顯示就行,定時器0中斷程式中更新計時數值 還可以嘗試在定時器0的中斷程式裡關閉定時器1,交且將定時器0的中斷優先順序設高 就你現在的程式可以正常掃描顯示的呀,就是有點閃爍的效果。但不知道,這是和誰學習的,數碼管顯示要用定時器定時,中斷一次顯示...