51微控制器怎麼連續接收8位資料我用的是串列埠中

2021-03-03 21:19:59 字數 1964 閱讀 7168

1樓:匿名使用者

應該是復你處理不當,將第二制個資料丟失了,可以開闢一個緩衝區來解決這個問題。

#include

#define uchar unsigned charuchar recive[16],num=0;

void uart() inerrupt 4}main()

2樓:匿名使用者

串列埠的波特率是不是比較高,而中斷服務子程式又比較長,這樣,在串列埠中斷程式還沒有執行完,就又收到了一個位元組,那麼這個位元組就會丟了。在保證從中斷及時返回,才能連續收到資料。

3樓:墨爾本晴小果

接收到的資料要有快取區,接收到後要分別儲存,如果第一次的資料沒有讀走,第二次的有來了,會把第一次的覆蓋掉!

4樓:

是不是處理數太慢了,處理時串列埠又中斷了。如果處理時禁止中斷,串列埠就收不到了。

stm8s微控制器uart串列埠通訊如何實現連續傳送和接收兩個8位資料

5樓:匿名使用者

先說發copy送

第一個位元組是地址bai沒問題,理論上是不是傳送du下一位元組要根據迴應zhi的ack來決定,但實際實現的時dao候是直接傳送的而不理會其ack,每傳送一個8位元,你要間隔1個位元位供從機向匯流排上寫ack,然後你再寫第二位元組資料,同樣,空出ack,然後給出結束位

接收結構是一樣的,地址位要變成讀操作,區別在於中間的ack要由你,主機給出,你給低表示還要繼續讀,你既然要讀兩個位元組,中間的ack就要給低,接收完兩個資料,你給出高電平,告訴從機你已經不需要讀取了,然後你給匯流排結束位就完事了

6樓:西天取經的熊

傳送一個位元組資料後保持查詢串列埠傳送是否完成,如果完成馬上傳送下一個位元組資料,接收的時候接收完一個位元組後做延時等待,如果延時等待時間內還有串列埠資料送來就接著讀取沒有的話跳出。

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

7樓:匿名使用者

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

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

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

為什麼51微控制器接收一串資料時,只有接收16進位制資料時才進入串列埠中斷,而接收單個資料就沒有格式限制

8樓:做而論道

序列通訊,每次

來是傳輸一源個位元組,即8位二進位制數。

微控制器收到一個位元組,就會進入串列埠中斷。

樓主所說的:一串資料、16進位制資料、單個資料、兩個字、兩個以上的字元...,都是些什麼呀?

請按照專業術語:位元組,來說明你的問題。

9樓:匿名使用者

肯定是用串列埠bai助手傳送的吧,主du要原因是由於你處zhi理接收時間佔用太

dao長,第二

回個資料丟掉了,解決的辦法答是開闢一個接收緩衝區,用中斷方式接收,這樣一般不會丟資料了。

用c的話如下:

#include

#include

unsigned char pget,pput,serdata[16];

main()}}

void ser_isr(void) interrupt 4}

10樓:匿名使用者

在軟bai件上可以是數也可以是字元du,軟體內部串zhi口控制元件最終

還是將要發dao的資料或字元,轉化內成位元組,因為原始收發是容8位二進位制碼(1個位元組),它不管你是什麼資料還是字元,最終解釋必須是(0-255)才可以.即******xx,微控制器每接收一個位元組,中斷一次.

51微控制器URAT中斷接收資料,51微控制器串列埠接收多個字元 假如是4位元組 ,是分4次中斷傳輸的,還是一次中斷完成的?

t1定時器的初始化程式 void init1 main void main tmod 0x01 th0 th0 tl0 tl0 es 1 允許uart串列埠的中斷ri 0 ea 1 et0 1 tr0 1 init1 main tmod,被初始化了兩次不同的數值,只有最後一次,才是有效的。應該統一使...

51微控制器如何讓2位數碼管閃爍,微控制器數碼管動態顯示的過程中,怎麼實現讓其中一個閃爍,其他的不受影響

想讓抄他最後3秒閃爍 我猜應該是像倒計時到快結束時的警報那樣的閃爍吧?這需要再新增一個計時變數。比如總共有10秒,想讓它在最後3秒閃爍,可以這樣 在定時器中斷 比如100ms一次 裡令一個計時變數 假設叫t 加1 加到10就是1秒,加到70就是第7秒。在進行數碼管驅動的時候判斷這個變數t,如果大於7...

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

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