導航:首頁 > 操作系統 > 單片機接收多位元組

單片機接收多位元組

發布時間:2025-01-28 22:11:29

㈠ 請問51單片機如何解決多位元組串口接收問題

串口的收發可以用查詢和中斷兩個辦法來實現。
1、查詢方法更適合於半雙工機制,編寫的思路簡單,程序結構簡單,在全雙工通信中易出問題。
2、中斷方法則更高效。你的程序把兩種方法混搭使用,容易出錯。

以你的程序為例,一旦收到首個23H字元,就停止在中斷服務中for循環裡面等待5個剩餘字元。假設感測器只發了3個字元,你的程序就停止在for循環裡面。
以你的程序為例改進,在中斷服務接收中,每次接收中斷只收1個字元,完成後退出。
void uart_interrupt(void) interrupt 4 using 0
{
static unsigned char i=0;
unsigned char buf;
if(RI==1)
{
buf=SBUF;
switch(i)
{
case 0:
if(buf==0x23)i=1;
break;
case 1:
case 2:
case 3:
case 4:
case 5:
buffer[i-1]=buf;
i++;
if(buf==0x23)
i=1;
if(i==5)
{
do_something_here(buffer);
i=0;
}
break;
default: i=0;break;
}
RI = 0; //RI清零
}
if(TI==1) TI=0; //TI清零
}
這樣改符合你的思維習慣嗎?實際串口協議解析與協議密切相關,用狀態機做比較好。程序中i把它變成狀態機的狀態,思考一下,改改程序更佳。

㈡ 單片機給電腦發送一個位元組的十六進制數,這個數該存放在什麼類型的變數里呢

1。串口發送:單片機這里很簡單:設好波特率後,只要一條MOV SBUF,A即可將累加器的內容(一個位元組)送到串口。
2。數據格式:在單片機這里,全是以位元組方式運行的,更大的數要多位元組拼裝
3。在VB中,串口接收要選用「位元組」方式,不要用「字元串」方式,這樣可以很好的和單片機配合。
4。在VB中,可以將位元組數據轉換為無符號整數。
5。如果數據僅限於位元組(256之內),用剛才接收的位元組就可以直接參加運算。0D5H即是213,超過一個位元組的數值,由單片機傳過來之後要拼裝,比如(1A2BH)先傳1AH,再傳2BH,到VB中,將1AH(=26)乘以16(=416),再加上2BH(=43),其和等於459(=0X1CB)。
6。十六進制在單片機中用0ABH方式,在VB中用0xAB方式表示。

㈢ 51單片機數據類型轉換 高分!

假如你的串口發送函數叫SendData,接收函數叫RecvData,參考如下代碼

發送端:

intSendData(unsignedchar*pSendBuf,unsignedintnSendLen);
intRecvData(unsignedchar*pRecvBuf,unsignedintnBufLen);
voidmain(void)
{
floatf;
inti;
doubled;

SendData((unsignedchar*)&f,sizeof(float));
SendData((unsignedchar*)&i,sizeof(int));
SendData((unsignedchar*)&d,sizeof(double));
}

接收端:

voidmain(void)
{
floatf;
inti;
doubled;

RecvData((unsignedchar*)&f,sizeof(float));
RecvData((unsignedchar*)&i,sizeof(int));
RecvData((unsignedchar*)&d,sizeof(double));
}

宗旨就是,先取其他類型數據的地址,用&符號,然後把地址轉換為unsigned char*型,就可以通過*(unsigned char)的方式或(unsigned char)[]的方式訪問了,就這么簡單,希望可以幫到你.

閱讀全文

與單片機接收多位元組相關的資料

熱點內容
有什麼伺服器可以玩心跳水立方 瀏覽:83
運籌學演算法與編程實踐 瀏覽:670
程序員開個加工廠 瀏覽:230
pdf11破解 瀏覽:884
熊市之下加密貨幣礦業 瀏覽:113
php屬於什麼行業 瀏覽:739
androidpad布局 瀏覽:228
兒童python網課哪家好 瀏覽:759
vb抖動演算法 瀏覽:322
pdfadobe拆分 瀏覽:94
3shape加密狗文件夾 瀏覽:497
reactnative比java 瀏覽:132
堅果雲與伺服器 瀏覽:184
丹佛斯編程軟體下載 瀏覽:890
Pdf成word 瀏覽:477
一隻胖胖的程序員 瀏覽:473
百度網盤解壓軟體下載電腦 瀏覽:841
阿特拉斯壓縮機油封服務熱線 瀏覽:996
大疆音樂庫保存文件夾 瀏覽:384
程序員格格衫 瀏覽:617