久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1987|回復: 0
收起左側

串口液晶模塊接收串口處理單片機程序源碼

[復制鏈接]
ID:350209 發表于 2018-6-12 13:33 | 顯示全部樓層 |閱讀模式
武漢中顯液晶模塊的串口處理程序。其中包含了多字節(不定長)串口的處理方法。可以參考。

單片機源程序如下:
  1. //功能:單片機讀取VGUS屏返回指令
  2. //來源:中顯科技
  3. //全局變量
  4. u16 StartNum=0,TalNum=0;
  5. #define BUFFER_SIZE 2048//指令緩沖區大小,用戶可根據自己單片機的容量修改
  6. u8 CommBuff[BUFFER_SIZE]//定義指令緩沖區
  7. #define USER_R3 0xA5//幀頭
  8. #define USER_RA 0x5A//幀頭
  9. /////////////////
  10. //串口中斷函數
  11. //用戶根據單片機的不同,修改串口中斷函數,中斷函數內只保存串口數據到緩沖區
  12. void USART3_IRQHandler(void)
  13. {
  14.     CommBuff[TalNum++]=USART_ReceiveData(USART3);//保存串口數據
  15.     if(TalNum==BUFFER_SIZE)
  16.       TalNum=0;                 
  17. }


  18. //主程序指令解析函數
  19. //用戶在主循環中調用
  20. void deal_command()
  21. {
  22.     u16 i,CurNum,tem_TalNum;
  23.     u8 CmdBuf[256];
  24.     u16 nowbuffer,len;
  25.     len=StartNum;
  26.     tem_TalNum=TalNum;
  27.     if(tem_TalNum==len)//
  28.        return;
  29.     if(CommBuff[StartNum]!=USER_R3)
  30.     {
  31.         StartNum++;
  32.         if(StartNum==BUFFER_SIZE)
  33.           StartNum=0;
  34.         return;
  35.     }
  36.     if(tem_TalNum>len)
  37.       nowbuffer=tem_TalNum-len;
  38.     else
  39.       nowbuffer=tem_TalNum+BUFFER_SIZE-len;
  40.     if(nowbuffer<5)
  41.       return;
  42.     CurNum=StartNum+2;
  43.     if(CurNum>BUFFER_SIZE-1)
  44.       CurNum-=BUFFER_SIZE;
  45.     len=CommBuff[CurNum]+3;
  46.     if(nowbuffer<len)
  47.       return;
  48.     i=0;
  49.     CurNum=StartNum;
  50.     while(1)
  51.     {
  52.         CmdBuf[i++]=CommBuff[CurNum++];
  53.         if(CurNum==BUFFER_SIZE)
  54.           CurNum=0;
  55.         if(i==4)
  56.         {
  57.             if(CmdBuf[0]!=USER_R3||CmdBuf[1]!=USER_RA)//
  58.             {
  59.                 StartNum=CurNum;
  60.                 return;
  61.             }
  62.             len=CmdBuf[2];
  63.         }
  64.         else if(i>4)
  65.         {
  66.             if(i==len+3)//
  67.             {
  68.                 StartNum=CurNum;
  69.                 break;
  70.             }
  71.             else if(i>255)//
  72.             {
  73.                 StartNum=CurNum;
  74.                 return;
  75.             }
  76.             else if(CurNum==tem_TalNum)
  77.               return;
  78.         }        
  79.     }
  80.     ///現在解析指令CmdBuf保存一整條指令
  81.     switch(CmdBuf[3])
  82.     {
  83.             case 0x81:
  84.                
  85.                 break;
  86.             case 0x83:
  87.                
  88.                 break;
  89.             default:////命令無效,刪除
  90.                     break;
  91.     }
  92.     return;
  93. }
復制代碼

所有資料51hei提供下載:
單片機讀取VGUS屏返回指令.rar (976 Bytes, 下載次數: 21)


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品网 | 中文一区 | 精品国产一区二区三区观看不卡 | 不卡一区二区三区四区 | 精品国产99 | 亚洲精品在线看 | 免费国产视频 | 欧美精品一区三区 | 99久久亚洲| 欧美激情在线精品一区二区三区 | 久国产精品| 欧美亚洲国产一区二区三区 | 亚洲自拍一区在线观看 | 51ⅴ精品国产91久久久久久 | 亚洲欧洲日韩 | 日本久草| 亚洲视频免费在线看 | 做a的各种视频 | 国产在线视频一区二区 | 欧美一区不卡 | 久久久性色精品国产免费观看 | 一级在线| 亚洲欧美中文字幕 | 欧美淫片 | 中文字幕一区二区视频 | 亚洲一级淫片 | www日韩| 欧美男人天堂 | 国产精品久久久久久一区二区三区 | 男人天堂网av | 欧美成视频在线观看 | 在线看av的网址 | 日本中文在线视频 | 亚洲高清在线 | 欧美久久影院 | 九九热精品在线 | 国产91在线 | 欧美 | 凹凸日日摸日日碰夜夜 | 亚洲综合第一页 | 9久9久9久女女女九九九一九 | 国产精品18hdxxxⅹ在线 |