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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5704|回復: 4
打印 上一主題 下一主題
收起左側

求助:串口助手HEX發送數據,51單片機接收,用LCD1602顯示。

[復制鏈接]
跳轉到指定樓層
樓主
當串口助手HEX發送45時,LCD1602顯示并不是35,而是69 ,
  1. void Usart() interrupt 4
  2. {
  3.         uchar D1,D2,D3,Data;
  4.         EA = 0;
  5.         Data=SBUF;   //出去接收到的數據
  6.         RI = 0;        //清除接收中斷標志位

  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. }          
復制代碼
通過發現修改了一下
  1. void Usart() interrupt 4
  2. {
  3.         uchar D1,D2,D3,Data;
  4.         EA = 0;
  5.         Data=SBUF;         //出去接收到的數據
  6.         RI = 0;               //清除接收中斷標志位

  7.         if(Data < 100 && Data >= 0)                 //輸入十進制數小于64
  8.         {       
  9.                 D1 = Data%16;                        //個位
  10.                 Data = Data/16;
  11.                 D2 = Data%16;                        //十位
  12.                 D3 = 0;       
  13.         }
  14.         if(Data >= 100 && Data < 256)                //輸入十進制數大于等于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. }
復制代碼

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

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

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




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2017-12-16 21:54 | 只看該作者
串口發送一幀數據范圍0x00~0xff,大于0xff的數值需要分段發送,接收后按自定義通訊協議再復原。你用串口助手發送100并不是你想象的10進制100,而是自動分為16進制2幀0x10和0x00發送。你要傳輸125可以直接發送7D就可以了。
回復

使用道具 舉報

板凳
ID:220156 發表于 2017-12-17 09:32 | 只看該作者
本帖最后由 瘋狂的小吉 于 2017-12-17 10:32 編輯
wulin 發表于 2017-12-16 21:54
串口發送一幀數據范圍0x00~0xff,大于0xff的數值需要分段發送,接收后按自定義通訊協議再復原。你用串口助 ...

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

又有個串口HEX模式傳輸問題:
      1. (這里是直接輸16進制)串口發送7d,通過一種轉換,LCD顯示125,
          轉換形式為
  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);
復制代碼

      2.(直接輸十進制)串口發送31,通過轉換,LCD顯示31
       31——0x31——49-轉換-——31
       F:\7_單片機\藍牙傳輸血壓數據\捕獲.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);
復制代碼

關于轉換現在很亂

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

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

捕獲.PNG

評分

參與人數 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:262595 發表于 2017-12-17 11:29 | 只看該作者
我有hex文件但不知道怎么發
回復

使用道具 舉報

5#
ID:220156 發表于 2017-12-17 14:31 | 只看該作者
簡近樹 發表于 2017-12-17 11:29
我有hex文件但不知道怎么發

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清在线精品 | 91九色在线观看 | 在线免费观看黄网 | 国产高清在线精品 | 成人超碰 | 男女污污动态图 | 国产亚洲一区二区三区在线 | 国产精品久久国产精品久久 | 久久久这里都是精品 | 一区二区三区四区免费在线观看 | 伊人色综合久久久天天蜜桃 | 成人免费看片又大又黄 | 欧美影院 | 日韩一区二区在线视频 | 免费国产一区 | 欧美一级黄色片免费观看 | 在线免费观看黄视频 | 欧美精品一区在线 | 欧美一区二区在线 | 一区二区三区在线免费观看 | 日韩欧美国产综合 | 日韩三级在线 | 亚洲二区在线观看 | 亚洲精品一区二区三区在线 | 97avcc| 国产精品一区二区av | 一区二区在线免费观看 | 在线视频亚洲 | 在线观看国产 | 乳色吐息在线观看 | 亚洲国产精品一区二区三区 | 一区二区三区四区在线 | 成人在线观看亚洲 | 伊人精品久久久久77777 | 欧美精品啪啪 | 成人在线日韩 | 精品国产91 | 欧美一区免费 | 一级片视频免费 | 最新超碰 | 久热免费 |