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

2021-03-03 21:19:56 字數 2193 閱讀 5851

1樓:做而論道

程式採用了查詢copy式傳送,for(i=0;i<6;i++) ,共發bai送了6個字元。

再去查詢收到否du。

這種方法zhi,就是有問題的,發

dao送6個字元時,就可能收到了好幾個字元,而沒有及時儲存,完全可能丟失資訊。

應該採用中斷方式接收;傳送,也可以用查詢,也可以用中斷。

方法弄清楚了,程式就容易編寫、除錯了。

2樓:滄水伢子

char handshake (void)裡面抄:

for(i=0;i<6;i++)

襲 while(ri)

這裡不能這麼用,否則傳送發完了,還沒收到(此時ri=0)就返回主程式傳送1,2,3了。這裡要加一句while(!ri);

改為:for(i=0;i<6;i++)

while(!ri);

while(ri)

{............

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

3樓:匿名使用者

你看一下send-string這個函式,string指的是字串,要求輸入的引數應該是指標型別,可以

輸入陣列內名稱,也可以直接輸入一串容字元如"i love you"用引號引住,傳送的是asci碼

要想發資料,你可以寫一個發資料的函式,或者將資料變數轉換為地址,

如 uchar a=0x38 想發a的數值可以 send-string(&a)

接收端如果是十六進位制格式就會顯示十進位制56或0x38

如果是文字模式就顯示8

發一連串資料 a[4]=

send-string(a)即可

當然你可以同時發字串和資料,先將資料轉換為字串(陣列),然後用字串拼接函式把原來的字串和資料字串合成一個陣列,再一次發過去

接收端只能以一種方式接收了,要麼文夲,要麼十六進位制

51微控制器 串列埠傳送幾組資料

4樓:匿名使用者

微控制器 串列埠傳送復多位元組

資料,制可以一個一個的傳送,即

傳送 一個 位元組,等待傳送 完畢,接著傳送 下一個位元組,再等待傳送 完畢。

再傳送 一個 位元組,- - -

接收也是一樣,一個一個接收,

一般 多位元組傳送 與 接收,可以設計一個 通訊 協議,如 傳送指令碼 - 資料1 - 資料2 - - - 資料n - 校驗碼 - 結束碼

這樣的 通訊 可以不出錯誤。

5樓:匿名使用者

把你的程式列出來。。

6樓:匿名使用者

沒明白你是什麼意思?

51微控制器用串列埠跟pc通訊進行收發資料

7樓:匿名使用者

//**來

來自 微控制器

自小精靈v1.3

//波特率9600 11.0592晶振 方式2#include

void inituart(void)

void sendonebyte(unsigned char c)void main(void)

void uartinterrupt(void) interrupt 4

else

ti = 0;}

8樓:匿名使用者

程式中是19200.

通訊不上有很多原因,你的電路不對、甚至是連線不對,也會導致通訊不上內.

你可以試試跟蹤你的容程式,看看可否正確地接收到pc發過去的資料,先把接收程式調好,然後再調傳送部分,這樣才有目標.

9樓:windy_諾

樓主試試只傳送一個字元,1或者2,不要12一起傳送。如果硬體,連線沒有問題應該是傳送什麼pc就接收到什麼。

10樓:音悅

我提下問題,你看下是不是:

1、***口對不對

2、波特率在燒錄程式的時候有的,你看下是否相同

51微控制器,如何用串列埠傳送一個變數的值

11樓:匿名使用者

四位數字組合成的值大於256,是一個雙位元組數值,所以需要傳送兩次程式如下:

#include

unsigned char x;

main()

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

兩個錯誤復。while ti ti 0 這是一個。制while ti 後面少一個分bai號!變成了,du原本正確的程式是想讓zhiti 1的時候,把daoti清零,但是你現在變成了 當ti為0的時候執行ti 0,而當ti變成1的時候卻反而不執行ti 0了,因此每次傳送完成一個字元以後,ti的值沒有清...

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的數。比如發...