亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 求助:串口助手HEX發(fā)送數(shù)據(jù),51單片機(jī)接收,用LCD1602顯示。 [打印本頁]

作者: 瘋狂的小吉    時間: 2017-12-16 15:23
標(biāo)題: 求助:串口助手HEX發(fā)送數(shù)據(jù),51單片機(jī)接收,用LCD1602顯示。
當(dāng)串口助手HEX發(fā)送45時,LCD1602顯示并不是35,而是69 ,
  1. void Usart() interrupt 4
  2. {
  3.         uchar D1,D2,D3,Data;
  4.         EA = 0;
  5.         Data=SBUF;   //出去接收到的數(shù)據(jù)
  6.         RI = 0;        //清除接收中斷標(biāo)志位

  7.         D1 = Data/100;
  8.         Data = Data%100;
  9.         D2 = Data/10;
  10.         D3 = Data%10;
  11.         LcdWriteCom(0xC0 + 8);
  12.         LcdWriteData(D1+0x30);
  13.         LcdWriteData(D2+0x30);
  14.         LcdWriteData(D3+0x30);

  15.         EA = 1;
  16. }          
復(fù)制代碼
通過發(fā)現(xiàn)修改了一下
  1. void Usart() interrupt 4
  2. {
  3.         uchar D1,D2,D3,Data;
  4.         EA = 0;
  5.         Data=SBUF;         //出去接收到的數(shù)據(jù)
  6.         RI = 0;               //清除接收中斷標(biāo)志位

  7.         if(Data < 100 && Data >= 0)                 //輸入十進(jìn)制數(shù)小于64
  8.         {       
  9.                 D1 = Data%16;                        //個位
  10.                 Data = Data/16;
  11.                 D2 = Data%16;                        //十位
  12.                 D3 = 0;       
  13.         }
  14.         if(Data >= 100 && Data < 256)                //輸入十進(jìn)制數(shù)大于等于64 小于100
  15.         {
  16.                  D1 = Data%16;                        //個位
  17.                 Data = Data/16;
  18.                 D2 = Data%16;                        //十位
  19.                 D3 = 0;               
  20.         }       
  21.         LcdWriteCom(0xC0 + 8);
  22.         LcdWriteData(D3+0x30);
  23.         LcdWriteData(D2+0x30);
  24.         LcdWriteData(D1+0x30);
  25.         EA = 1;
  26. }
復(fù)制代碼

這個原因是:45是通過十六進(jìn)制發(fā)送,即4*16+5*1=69。
有個疑問:串口助手發(fā)送45,單片機(jī)接收的不也應(yīng)該是45嗎?應(yīng)該只是傳輸是以十六進(jìn)制傳輸?!
現(xiàn)在的結(jié)果是:
  我最高發(fā)送十進(jìn)制99(十六進(jìn)制255),發(fā)送十進(jìn)制100/101(十六進(jìn)制256/257)就顯示000/001了(好像是Hex發(fā)送時只能使兩位數(shù),100就是發(fā)送10  0, 101就是10  1);

我想問下就是:1.我要串口發(fā)送十進(jìn)制數(shù)大于100(如125),這樣現(xiàn)在的程序轉(zhuǎn)換就不行了,應(yīng)該怎么傳輸125這個數(shù)?
                                   (定義數(shù)組,再依次傳 1 , 2 , 5 ,在LCD顯示???)
                        2.我之后是想通過兩個藍(lán)牙模塊進(jìn)行兩個單片機(jī)之間傳輸據(jù)(如距離,壓力等數(shù)據(jù))。

希望大家能給些解答與建議





作者: wulin    時間: 2017-12-16 21:54
串口發(fā)送一幀數(shù)據(jù)范圍0x00~0xff,大于0xff的數(shù)值需要分段發(fā)送,接收后按自定義通訊協(xié)議再復(fù)原。你用串口助手發(fā)送100并不是你想象的10進(jìn)制100,而是自動分為16進(jìn)制2幀0x10和0x00發(fā)送。你要傳輸125可以直接發(fā)送7D就可以了。
作者: 瘋狂的小吉    時間: 2017-12-17 09:32
本帖最后由 瘋狂的小吉 于 2017-12-17 10:32 編輯
wulin 發(fā)表于 2017-12-16 21:54
串口發(fā)送一幀數(shù)據(jù)范圍0x00~0xff,大于0xff的數(shù)值需要分段發(fā)送,接收后按自定義通訊協(xié)議再復(fù)原。你用串口助 ...

謝謝您的解答,有所收獲。

又有個串口HEX模式傳輸問題:
      1. (這里是直接輸16進(jìn)制)串口發(fā)送7d,通過一種轉(zhuǎn)換,LCD顯示125,
          轉(zhuǎn)換形式為
  1. D1 = Data/100;                //        百位
  2.         Data = Data%100;        
  3.         D2 = Data/10;                  //        十位
  4.         D3 = Data%10;                //  個位

  5.         LcdWriteCom(0xC0 + 8);
  6.         LcdWriteData(D1+0x30);
  7.         LcdWriteData(D2+0x30);
  8.         LcdWriteData(D3+0x30);
復(fù)制代碼

      2.(直接輸十進(jìn)制)串口發(fā)送31,通過轉(zhuǎn)換,LCD顯示31
       31——0x31——49-轉(zhuǎn)換-——31
       F:\7_單片機(jī)\藍(lán)牙傳輸血壓數(shù)據(jù)\捕獲.PNG
  1.         D1 = Data%16;                        //個位
  2.                 Data = Data/16;
  3.                 D2 = Data%16;                        //十位
  4.                 D3 = 0;        
  5.         LcdWriteCom(0xC0 + 8);
  6.         LcdWriteData(D3+0x30);
  7.         LcdWriteData(D2+0x30);
  8.         LcdWriteData(D1+0x30);
復(fù)制代碼

關(guān)于轉(zhuǎn)換現(xiàn)在很亂

然后就是這兩種方法,我要通過藍(lán)牙傳輸十進(jìn)制數(shù)(125),我要選擇第一種,用單片機(jī)將125轉(zhuǎn)化為十六進(jìn)制,再通過藍(lán)牙模塊傳輸給其他設(shè)備應(yīng)該可行吧(感覺有點(diǎn)跑題),,還是麻煩幫助下。

捕獲.PNG (2.18 KB, 下載次數(shù): 51)

捕獲.PNG

作者: 簡近樹    時間: 2017-12-17 11:29
我有hex文件但不知道怎么發(fā)
作者: 瘋狂的小吉    時間: 2017-12-17 14:31
簡近樹 發(fā)表于 2017-12-17 11:29
我有hex文件但不知道怎么發(fā)

你說的是燒錄進(jìn)單片機(jī)的那個hex文件嗎?
我這里是單片機(jī)串口助手發(fā)送的數(shù)據(jù)(以HEX模式傳輸 即以十六進(jìn)制的形式)




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1