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

單片機接收多位元組

發布時間: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)[]的方式訪問了,就這么簡單,希望可以幫到你.

閱讀全文

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

熱點內容
centos7vim命令 瀏覽:908
安卓系統如何切換賓客用戶 瀏覽:440
php教材書 瀏覽:840
未見app怎麼刪除空間 瀏覽:567
安卓手機u盤加密 瀏覽:241
專業雲伺服器便宜 瀏覽:945
cad手機看圖怎麼弄新建文件夾 瀏覽:942
單片機數控繞線機 瀏覽:606
pdf表格能轉excel 瀏覽:412
伺服器之間的負載均衡如何實現 瀏覽:204
多媒體伺服器執行什麼定額子目 瀏覽:216
php獲取手機標識 瀏覽:906
點擊錄制按鈕是什麼app 瀏覽:890
證據提取命令視頻 瀏覽:354
java的學習心得 瀏覽:96
prof命令 瀏覽:279
手機加密文件密碼怎麼解開 瀏覽:283
賈躍亭程序員完整視頻 瀏覽:959
怎樣把兩個文件夾打包發送 瀏覽:378
單片機教程資料 瀏覽:982