51微控制器串列埠問題 傳送位元組 為什麼串列埠除錯軟體連續接收 下附程式

2021-04-20 08:37:12 字數 1008 閱讀 2398

1樓:302小橋流水

兩個錯誤復。while(!ti)

ti=0;

這是一個。制while(!ti) 後面少一個分bai號!!

變成了,du原本正確的程式是想讓zhiti==1的時候,把daoti清零,但是你現在變成了 當ti為0的時候執行ti=0,而當ti變成1的時候卻反而不執行ti=0了,因此每次傳送完成一個字元以後,ti的值沒有清零,這樣ti始終為1。

第二個錯誤是您的串列埠中斷裡面沒有判斷是接收中斷還是傳送中斷,微控制器的串列埠中斷是ti,或者ri中任何一個為1,都會進入中斷的,因此你這個錯誤恰好跟前面的錯誤首位呼應,造成了flag不斷為1,也就造成了 不斷髮送資料,不斷進入中斷這個死迴圈。。哈哈,錯得這麼巧妙我也覺得很不可思議。。

2樓:蔣

只是少了個分號!我試了

各位大俠,51微控制器串列埠中斷接收問題?為什麼一個一個位元組的發,串列埠都可以接收,而連續發4個十六進位制

3樓:匿名使用者

每次進中斷你都回發rbuf陣列(4個位元組),更要命的是你居然還敢在中斷函式裡面while(ti==0)。

你可以看看在序列中斷函式裡面浪費了多少時間。

51的串列埠只有一個移位暫存器。第一次進入中斷後你讀出了1個位元組,然後移位暫存器裡面又收到1個位元組,剩下的再來就被丟掉了……因為老兄你還在第一次進入的中斷裡面悠哉悠哉地耍呢。

51串列埠通訊問題,由串列埠助手傳送十個位元組,微控制器接收十個位元組,顯示無法接收,程式如下

4樓:匿名使用者

這程式沒有問題,如果是隻接收的話。

51微控制器 ,串列埠要想從電腦接收到一個字元『1』 用串列埠除錯助手要傳送個什麼,急急急!!!急急急!!

5樓:

取消16進位制勾選,傳送1就行了

6樓:匿名使用者

字元『1』對應ascii是0x31

51微控制器串列埠傳送資料,51微控制器串列埠同時傳送文字和資料

程式採用了查詢copy式傳送,for i 0 i 6 i 共發bai送了6個字元。再去查詢收到否du。這種方法zhi,就是有問題的,發 dao送6個字元時,就可能收到了好幾個字元,而沒有及時儲存,完全可能丟失資訊。應該採用中斷方式接收 傳送,也可以用查詢,也可以用中斷。方法弄清楚了,程式就容易編寫 ...

51微控制器串列埠通訊問題

c51微控制器的程式 1 初始化程式 tmod 0x20 th1 0xfd tl1 0xfd 0 0 1 1 ren 1 tr1 1 ea 1 es 1 2 傳送程式 void data send 串列埠傳送資料3 接收資料 void data receive interrupt 4 include...

51微控制器與vb通過串列埠通訊,微控制器為什麼只能傳送0至

傳送大數,你只能多次傳送,一次只能傳送一幀,而串列埠傳送的一幀可能是7 8 9位,由你設定而定。51微控制器是8位的,一次只能處理8位資料,也就是一個位元組,一個位元組只能表示0 255的大小的資料。一個位元組確實只能是0 255,但你可以連續發兩個位元組然後在vb裡面組成一個大於255的數。比如發...