RS232串列埠通訊程式用串列埠除錯助手,傳送資料與接收資料不符

2021-05-11 22:18:10 字數 5482 閱讀 1182

1樓:匿名使用者

上、下位機的波特率一致嗎?

晶振是不是用11.0592mhz?

在除錯rs232串列埠通訊時,微控制器往pc機上發資料,串列埠除錯助手可以接收,但是pc往微控制器發資料,接收不到。

2樓:

先解釋一下現象:

(1)max232的12腳即r1out連線到了微控制器的rx腳,因此使用探頭碰max232的12引腳時匯入了干擾訊號,所以接收到了亂的資料。同時,也證明了微控制器的接收電路和程式都沒有問題。

(2)板子上的地接到示波器上的地,pc才能收到資料,說明微控制器與pc沒有共地。同時,也證明了微控制器的傳送電路、程式和pc的接收電路都沒有問題。

原理:(1)pc的串列埠即rs232有9個引腳,與微控制器通訊時用到三個引腳,依次是2腳rx、3腳tx、5腳訊號gnd。

(2)而微控制器串列埠與此相反,2腳tx、3腳rx、5腳訊號gnd。

(3)只要把這三根線依次連線,2-2、3-3、5-5即可完成通訊。

(4)同時,根據實際通訊裝置介面不同,串列埠線也分多種,如直連線、交叉線、公母頭區別等。

故障排除流程:

(1)用萬用表等測量max232的14腳t1out與開發板序列介面的2腳tx、max232的13腳r1in與開發板序列介面的3腳rx、開發板序列介面的5腳與電源地是不是分別連線。如果連線沒問題,則進行下一步。

(2)用萬用表等測量串列埠線,pc端的2腳與微控制器端的2腳、pc端的3腳與微控制器端的3腳、pc端的5腳與微控制器端的5腳是不是分別對應,如果對應連線沒問題,則進行下一步。

(3)將pc上序列介面的2、3引腳短接。

(5)如果收不到,則說明pc的串列埠問題(排除串列埠工具沒有開錯串列埠或短接沒問題的情況下),換臺電腦試下。能收到,則說明電腦端收發都沒問題,進行下一步。

(6)將串列埠線插到電腦上,開發板端的插頭不插而直接將2、3腳短接。再次用串列埠工具傳送,看是否能接收到,如果能接收到,則證明串列埠線沒問題,進行下一步。

(7)將串列埠線插到開發板得序列介面上,再使用串列埠工具收發。

(8)如果以上都不行,則自己做3根線,也可以使用杜邦線,將pc的tx與開發板的rx、pc的rx與開發板的tx、pc的訊號地與開發板的地分別相連。再用串列埠工具收發測試。

通過以上步驟,則可以逐步排查到問題的具體原因。不過,根據問題及之後的描述,最大的可能性是串列埠線用的不對,導致pc串列埠與開發板串列埠的3根線沒有分別對應上。

3樓:

如果用的是51微控制器,除了確認電纜沒問題外,

可以查一下又沒有可能不小心把對應rxd的sfr給賦值0了,查這個不一定要看程式,可以拔掉微控制器晶片看串列埠上接收引腳波形,不好拔的話,按住微控制器復位開關不鬆手也許也可以。

4樓:匿名使用者

微控制器往pc上能發說明串列埠本身應該沒有問題:如果是你自己做的板子最好檢視一下微控制器接收那一路是否有虛焊或有短路情況(直接使用現成的開發板無視)。

然後仔細檢視下程式是否有問題,再在程式中下斷點,就下在接收到資料的下一條**。然後發資料,如果斷住說明資料收到了,是後面處理點亮led的**的問題。如果沒有那就是沒接收到。

還沒有就再使用示波器,示波器要設定成低電平觸發模式,微控制器的串列埠(tx,rx)平時都是高電平,起始位是低電平,後面就是你設定的資料位(7位或8位),還有停止和校驗位根據你設定的情況。資料傳送都是瞬間完成的,所以一定要使用觸發模式,如果捕捉不到,說明pc端的傳送有問題,可以換個串列埠除錯工具,還不行換跟串列埠線,再不行換臺電腦。一般到此問題肯定能解決了啊(除非中途有操作失誤的情況)

另外,一般使用串列埠還是使用中斷模式,可以節省系統資源,降低功耗!

5樓:

步驟一,串列埠除錯可以對你的微控制器

傳送嗎?如果可以,那就是你pc程式問題,如果不可以,那就是你微控制器問題,但是也可能是步驟二問題。

步驟二:傳送資料不對,一般常見的,比如16進位制傳送?還是acsii傳送?

步驟三:學會使用「串列埠監視」的小工具,監視資料包是否遵循協議。

步驟四:看你pc程式吧。用串列埠監視工具可以發現,可能你的pc程式都沒有包出來。

6樓:

1、微控制器串列埠控制在scon裡有個ren暫存器設定正確嗎?接收允許標誌。

2、串列埠中斷開了嗎?即使是查詢方式也要有ri狀態可以查詢才能接收。

3、微控制器串列埠接收最好還是用中斷方式,方便的多void isr_serial(void) interrupt 4sbuf= i; // echo

while(!ti);

ti = 0;}

在除錯rs232串列埠通訊時,微控制器往pc機上發資料,串列埠除錯助手可以接收,但是pc往微控制器發資料,接收不到。

7樓:吃飯自殺的豬

那樣是串列埠助手

源肯定收不到pc下發的資料的

232是三線的 發(tx),收(rx)和地(gnd)pc和mcu應該這樣連線

pc mcu

tx <--- > rx

rx <---> tx

gnd -- gnd

mcu和串列埠助手應該這樣連線

mcu 串列埠助手

rx <---> tx

tx <----> rx

gnd ---- gnd

串列埠助手和pc應該這樣連線:

pc 串列埠助手

tx < --- > rx

rx <----> tx

gnd ---- gnd

按照題意,你的連線方式一定是

pc 串列埠助手

tx < --- > tx

rx <----> rx

gnd ---- gnd

這樣是肯定收不到資料的

解決辦法: 把串列埠助手的收和發兩跟線位置換一下注意: 觀察微控制器串列埠資料時 又要換回來

8樓:匿名使用者

檢查下線路.

你是如何確定微控制器未收到資料的.

檢查下pc電腦的串列埠是否正常

9樓:匿名使用者

估計是微控制器串列埠接收有問題,接收是中斷還是查詢方式?中斷的話要注意每進入中斷要記得清中斷標誌位,查詢的話比較好理解,應該不會有大的問題,只要程式正確

pc機與微控制器通訊!我用rs232進行串列埠通訊,為什麼我是2--2 ,3--3的連,我用串列埠除錯接收不了! 5

10樓:匿名使用者

rs232的管腳說明

管腳 名稱 作用 中文解釋--------------------------------------------

pin2 rxd receiver 接收資料pin3 txd tran**it 傳送資料pin5 gnd ground 地線微控制器的專txd通過rs232晶片的屬txd接rs232的rxd,微控制器的rxd通過rs232晶片的rxd接rs232的txd,微控制器的地接rs232的地

所以要接這3根線才能完成微控制器與pc之間的資料收發。

11樓:香蕉更好吃

2-3,3-2,因為主機發過去的資料是從機要接收的

12樓:匿名使用者

你交叉 試試

其實,就應該用交叉線

電腦 tx 接 單片

機 的 rx

電腦 rx 接 微控制器 的 tx

電腦 gnd 接 微控制器 的 gnd

當然,2 邊的 電平版必須一致

電腦接權口的電

平是標準rs232

微控制器介面的電平是ttl

用 max232 就可以

微控制器中的做rs232串列埠通訊時,我的資料總是無法傳到微控制器實驗板上,我用的線是usb轉串列埠線

13樓:

程式沒問題

就從連線方面幫你分析下

1.除錯助手通訊協議,波特率(還是該對應程式版檢查下),埠號

2.線的問題:權rs232的2,3口短接看看3.也可以更改下除錯助手的收發格式:有可能是hex格式 點點試試

14樓:匿名使用者

感覺在確認

1:微控制器程式

2:串列埠助手使用

正確後;

再確認一下:

從串列埠傳送出去的資料格式是否是你程式中認為的資料格式(可以在串列埠助手中設定)

比如,微控制器是以char定義接收,而你傳送是以asc碼的形式。

15樓:匿名使用者

教你個最簡單bai的方法,把微控制器du的tx,rx這兩個引腳短zhi接了,看

你的「串列埠除錯dao助手v2.2.exe」是回不是有接到你從「串答口除錯助手v2.

2.exe」傳送出來的資料,如果有是你的微控制器電路或程式有問題,如沒有接到,說明你的usb轉串列埠線,或是驅動等方面有問題,先查下是哪出問題再來解決!!!

16樓:匿名使用者

微控制器晶振,程式設計熔絲位,用外部晶振

使用串列埠除錯助手(rs232),為什麼電腦上只有一個串列埠?(***1)

17樓:匿名使用者

其實,很多 電腦 並沒有***串列埠

就算有,也只有 一個

串列埠是用來通訊的,通訊 就需要2 端,這樣 才能形成一個通訊線路當然,如果 除錯串列埠程式,可以用 虛擬串列埠 的 如 vspd

18樓:超級vip貴賓

一般pc電腦本身就自帶1個……需要多個的話需要用擴充套件卡……

求串列埠通訊程式,採用c8051f020微控制器,通訊rs232,用串列埠除錯助手,能傳送和接收資訊,顯示在12864,用c

19樓:匿名使用者

推薦一本書,微控制器c語言程式設計實訓100例——基於8051+proteus** 這個不錯

20樓:

搞個串列埠模擬程式就可以了

21樓:匿名使用者

建議 去 我的領地 5d6d 的 proteus 論壇看看

那裡有很多 微控制器**例項,包括proteus **圖 和 原始碼

微控制器與pc機rs232串列埠通訊,我的程式在虛擬串列埠下沒問題,一到物理串列埠下,串列埠除錯助手就顯示亂碼

22樓:匿名使用者

硬體只要3根線就可以,傳送,接收,地。注意傳送要接對方的接收。根據您提到的情況,可能是地線沒有接對。

23樓:匿名使用者

晶振或波特率設定不一致?

rs232串列埠對接2-3針用串列埠除錯小助手1。3接收傳送資料正常,但裝置不能使用,如何設定

24樓:匿名使用者

介面電平一致嘛?

有 標準rs232電平

也有 ttl 電平的

使用USB轉RS232串列埠線無法在超級終端內訪問交換機,請教

超級終端 設定是否正確,尤其是要選擇com 交換機的console埠是rs232怎麼連超級終端 交換機的console埠是rs232要對超級終端做對映。一般是網口轉串列埠線才可以配置的,配置方法如下 找個rs232轉rj11的線,這樣的線交換機裡隨機都有的,再搞一個db9轉usb的線,把db9與rs...

RS232和RS485的特點 區別

簡單說rs232 3線 tx rx gnd點對點全雙工通訊,距離25米以內 rs485 3線 a b 點對多半雙工通訊,距離可達 1200米 rs232和rs485有什麼區別?是什麼意思?rs 232與rs 485的區別在於 1 傳輸方式不同 rs 232採取不平衡傳輸方式,即所謂單端通訊.而rs4...

中國廣播電視村村通機頂盒後面的RS232介面是幹什麼用的

機頂盒背面的rs232介面是通過與電腦的com口相連線,對機頂盒記憶體儲晶片的bin檔案進行重新燒錄,以此對機頂盒手動升級。rs232介面有很多種,常見的有三針 四針 五針 六針和九針或九孔的,能用到的針腳只有四個,分別是vcc 供電腳 gnd 接地腳 rxd 資料傳送 txd 資料接收 如下圖 由...