1樓:
// 微控制器序列口傳送/接收程式,每接收到位元組即傳送出去// 和微機相接後鍵入的字元回顯示在螢幕上// 可用此程式測試
//#include
#define xtal 11059200 // cup 晶振頻率
#define baudrate 9600 // 通訊波特率void main(void)}
2樓:
uchar a
a=sbuf //讀數值
串列埠除錯助手中傳送的是16進位制
a=sbuf/100 // 百位
b=sbuf/100%10 //十位
c=sbuf/100 // 個位
微控制器串列埠通訊詳解
51微控制器c語言實驗及實踐教程
3樓:匿名使用者
for(i=0;i<4;i++)
關鍵語句這樣寫就可以了,
上樓的程式中ri是接受完成的標誌位應該寫成while(ri != 0);
就是說當ri為1的時候,接收完成,不用一位位來接的,不然要sbuf幹什麼?
4樓:匿名使用者
樓上說的對,不過根據你的晶振要設好波特率。
用串列埠除錯助手向微控制器傳送資料,微控制器怎麼接受並儲存到一個陣列中
5樓:匿名使用者
你說復的這種通訊要求制可以採用幀傳送的方式,自己要確定一個幀格式,例如:
0x55//幀頭標誌
0xaa
//128位元組資料
校驗位元組1
校驗位元組2
校驗位元組是防止資料傳輸錯誤,校驗方式可自行選擇。
如果資料不是很重要,定義一個132位元組接收佇列(全域性變數陣列),如果資料很重要,定義兩個132位元組接收佇列,一個做接收緩衝,接受正確才更新正式佇列。還要定義一個接收指標,當接收到幀頭標誌,接收指標清零,以後每接收一個字元,以接收指標做下標將資料存入接收陣列。
用微控制器串列埠向電腦串列埠除錯助手傳送一個字串,用c語言程式設計
6樓:計算機技術價值
#include
unsigned char flag,a;
void main()
*/if(flag==1)}}
void ser() interrupt 4把字元換一下就行了
7樓:匿名使用者
uchar idata systembuf[10]; //用於接收uchar rx=0; //接收資料條數
uchar code at="yes,it is";
void uart_init (void)void sendchar(uchar ch) //串列埠送一個位元組void sendstring(uchar *p) //送字串}///////
void receive(void) interrupt 4 using 1 //中斷
ri=0;}}
///void main()
rx=0;}}
}//////////如有小錯誤,自己調下,手打的,大小寫可能不正常,這是標準程式,直接用,
8樓:匿名使用者
要這個幹嘛? 不過倒是很簡單
串列埠除錯助手除錯微控制器資料包,用串列埠除錯助手向微控制器傳送資料
應該分清楚串列埠通訊協議和基於串列埠的應用協議兩個級別的協議。串列埠通訊協議是固化在晶片級別的,只要設定好通訊引數即可 應用協議則是一串byte陣列,由使用者自定義,類似有crc校驗 cs校驗 幀頭 幀尾等位元組,下面是用格西烽火做的一個例子。什麼是 資料包 這11位是應該叫做 一幀 吧。可以,不信...
51微控制器,通過串列埠助手向微控制器傳送字串,微控制器將字串逆序傳送回計算機,用C語言程式設計
電腦通過串列埠助手向微控制器傳送字串,微控制器定義一個可以儲存7個字元的陣列,依次儲存接收的字串,當接收到7個字串後,就可以從陣列的最後一個字元向前傳送每一個字元給電腦就可以了。剩下的就是串列埠初始化,串列埠接收和傳送程式了,就比較好寫了。其實,電腦傳送任意的7個字元的字串都可以,微控制器收到後就可...
labview如何用串列埠向微控制器傳送浮點數
用這個函式,在數學 數值 資料操作。不過你得注意微控制器接收的浮點數是什麼格式的,是float還是double,labview預設的浮點數都是double佔64bits。如果微控制器的浮點數是32bits,你得把 數值 的表示法換成sgl才行。還有就是大端小端問題,如果你微控制器那邊收的數完全不對,...