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

單片機接收多位元組

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

閱讀全文

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

熱點內容
androidui入門書籍 瀏覽:739
單片機二進制文件加密 瀏覽:116
怎樣給文件夾加上級目錄 瀏覽:163
怎麼給app加密蘋果手機 瀏覽:191
安卓系統怎麼修復 瀏覽:394
09款軒逸空調壓縮機繼電器在哪裡 瀏覽:335
jodconverter源碼 瀏覽:258
小米app免流是什麼免流呢 瀏覽:359
車貸還完辦理解壓需要費用嗎 瀏覽:180
草書字典pdf 瀏覽:69
理財app怎麼看綁的銀行卡號 瀏覽:106
互斥微命令 瀏覽:882
linux掃描病毒 瀏覽:328
文件夾中顯示pdf內容 瀏覽:421
java數組題 瀏覽:232
銅製作文件夾 瀏覽:803
食安員app怎麼下載證書 瀏覽:925
php時間戳最大值 瀏覽:595
ad文檔加密 瀏覽:404
phpini上傳大小 瀏覽:935