//功能:單片機讀取VGUS屏返回指令 //來源:武漢中顯科技有限公司 www.eclinicbd.com //全局變量 u16 StartNum=0,TalNum=0; #define BUFFER_SIZE 2048//指令緩沖區大小,用戶可根據自己單片機的容量修改 u8 CommBuff[BUFFER_SIZE]//定義指令緩沖區 #define USER_R3 0xA5//幀頭 #define USER_RA 0x5A//幀頭 ///////////////// //串口中斷函數 //用戶根據單片機的不同,修改串口中斷函數,中斷函數內只保存串口數據到緩沖區 void USART3_IRQHandler(void) { CommBuff[TalNum++]=USART_ReceiveData(USART3);//保存串口數據 if(TalNum==BUFFER_SIZE) TalNum=0; } //主程序指令解析函數 //用戶在主循環中調用 void deal_command() { u16 i,CurNum,tem_TalNum; u8 CmdBuf[256]; u16 nowbuffer,len; len=StartNum; tem_TalNum=TalNum; if(tem_TalNum==len)// return; if(CommBuff[StartNum]!=USER_R3) { StartNum++; if(StartNum==BUFFER_SIZE) StartNum=0; return; } if(tem_TalNum>len) nowbuffer=tem_TalNum-len; else nowbuffer=tem_TalNum+BUFFER_SIZE-len; if(nowbuffer<5) return; CurNum=StartNum+2; if(CurNum>BUFFER_SIZE-1) CurNum-=BUFFER_SIZE; len=CommBuff[CurNum]+3; if(nowbuffer4) { if(i==len+3)// { StartNum=CurNum; break; } else if(i>255)// { StartNum=CurNum; return; } else if(CurNum==tem_TalNum) return; } } ///現在解析指令CmdBuf保存一整條指令 switch(CmdBuf[3]) { case 0x81: break; case 0x83: break; default:////命令無效,刪除 break; } return; }日日摸夜夜添夜夜添国产2021_av电影在线看_波多野结衣高清无码中文字幕_首页欧美日韩在线观看