在avr論壇上看到的 關(guān)于串口接收的方法 對(duì)項(xiàng)目有點(diǎn)幫助就記錄下了
感謝網(wǎng)友AVRBBS 提供的方法
staticunsignedchari;//定義一個(gè)靜態(tài)變量,用于記錄接收到那一個(gè)字節(jié)了。switch(i){case:0if(udr==0xAA)//收到第一個(gè)數(shù)據(jù),判斷是否為0XAA啟動(dòng)字節(jié)。i=i+1;//同步成功,增加變量i,進(jìn)入下一步操作。break;case:1在這一步取第符長(zhǎng)度,并把它保存在你定義的接收數(shù)組里面,在后面接收數(shù)據(jù)的時(shí)候用的到。case:2接收命令字節(jié),存入到數(shù)組里面。。。。。。。。上面是大概流程,供你參考學(xué)習(xí),下面的具體程序需要你自己完成。case:7判斷幀停止位(0x55)、判斷前一位校驗(yàn)是否正確,如果兩項(xiàng)都成功了,那么做下面兩件事:1、根據(jù)你的情況作出一定動(dòng)作,或者打上某個(gè)標(biāo)志,以標(biāo)志你接收完成。2、記得把變量i=0復(fù)位。