51微控制器通訊問題,串列埠除錯助手能接受微控制器傳送的資料,但是微控制器卻不能接受串列埠除錯助手傳送的資料

2022-06-06 12:56:41 字數 2815 閱讀 8846

1樓:匿名使用者

delay 延時短一點, 其他沒看出有問題

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

2樓:

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

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

3樓:匿名使用者

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

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

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

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

4樓:

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

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

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

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

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

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

5樓:仁昌居士

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

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

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

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

6樓:匿名使用者

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

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

7樓:匿名使用者

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

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

8樓:**尼奇

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

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

9樓:匿名使用者

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

10樓:

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

11樓:2000心安

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

串列埠除錯助手和微控制器通訊,為什麼有的可以有的不可以

12樓:匿名使用者

這個因素還是較多的:

1、看硬體上是否有問題。

2、看微控制器是否有毛病。

3、看串列埠線是否有問題。

4、看串列埠是否正常。

微控制器接收pc 串列埠除錯助手發過來的資料時,總是第一次資料接收不到,重新發一次就才正常

13樓:匿名使用者

要看程式全貌才知道具體原因,你可以將串列埠中斷的優先順序設為最高試試。

14樓:匿名使用者

應該是程式上的錯誤,或者在接收口接一個上拉電阻

51微控制器中,用串列埠通訊助手向微控制器傳送資料時,不用16進位制的話,傳送1,勾上16

15樓:

不用16進位制那就是字元,電腦傳送和微控制器接收都是該字元的asii碼

字元1的asii碼=16進位制的31,即0x31

用串列埠除錯助手向微控制器傳送資料,微控制器怎麼接受並儲存到一個陣列中

16樓:匿名使用者

你說復的這種通訊要求制可以採用幀傳送的方式,自己要確定一個幀格式,例如:

0x55//幀頭標誌

0xaa

//128位元組資料

校驗位元組1

校驗位元組2

校驗位元組是防止資料傳輸錯誤,校驗方式可自行選擇。

如果資料不是很重要,定義一個132位元組接收佇列(全域性變數陣列),如果資料很重要,定義兩個132位元組接收佇列,一個做接收緩衝,接受正確才更新正式佇列。還要定義一個接收指標,當接收到幀頭標誌,接收指標清零,以後每接收一個字元,以接收指標做下標將資料存入接收陣列。

微控制器串列埠通訊簡單問題

你沒有寫清楚復好多事情的吧?1.你是制用微控制器和bai 電腦的串列埠做通訊?2.如果是du用微控制器和電腦的zhi串列埠做通訊,那麼硬dao件的接法是否是ok 的?你用示波器看了電腦過來的資料波形是否是對的?3.uart 的通訊協議微控制器的軟體都做好的了?4.如果微控制器的通訊口硬體都對的,微控...

51微控制器串列埠通訊接收的過程的疑問

第一,接收資料時如果有高階別中斷產生,那麼將響應該中斷,接收資料將失敗,資料丟失。第二 響應中斷後,沒有退出中斷前,如果繼續有資料傳送過來,那麼後傳送過來的資料將丟失。關於微控制器串列埠收發過程的幾個疑問 微控制器程式設計 原則,所有中斷 程式 應該儘可能 簡短小,如 串列埠 中斷 只把接收 的資料...

微控制器接收PC串列埠除錯助手發過來的資料時,總是第一次資料接收不到,重新發一次就才正常

要看程式全貌才知道具體原因,你可以將串列埠中斷的優先順序設為最高試試。應該是程式上的錯誤,或者在接收口接一個上拉電阻 在除錯rs232串列埠通訊時,微控制器往pc機上發資料,串列埠除錯助手可以接收,但是pc往微控制器發資料,接收不到。先解釋一下現象 1 max232的12腳即r1out連線到了微控制...