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