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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

串口觸摸屏一般只接受字符串指令,那變化的數值怎么顯示?

[復制鏈接]
跳轉到指定樓層
樓主
1,串口觸摸屏存在的問題
串口觸摸屏,一般就是用串口指令控制觸摸屏的顯示,指令的形式一般是字符串,不容易變化。那么,假如想在觸屏上顯示變化的參數怎么辦?例如是采集到的儀表的變化的數值等。
2,怎么解決
先從串口數據的格式說起,實際來說字符串也是由一個個字符組成的,在發送的時候一個一個發送字符到串口,按照一定的形式編碼成字符串。
假如想要在觸屏上的某個文本控件t1上顯示溫度數據,舉個例子,假如指令的格式是:t1.txt=”溫度:123℃”,那么其實首尾的“t1.txt=”溫度:”和“℃””是固定的,我們可以繼續用字符串形式發送,只有中間的“123”這個實際的溫度值是變化的,需要做一下處理。
一個思路是這樣的:串口分段發送指令字符串,分為:指令頭、變量部分、指令尾。其中變量部分需要將變量的每一位提取出來,轉換為字符,并按照順序存入數組中,然后逐位發送到串口。一般先發送的那一位會先顯示在文本控件的最左邊。流程如下:


根據上面的例子用一個半完整的實操具體說說:
        定義一個溫度變量,例如unsigned int temp;
        定義一個用于顯示的字符數組,例如我們只想顯示3位數據,那就定義為unsigned char dis[3];
        將溫度變量的每一位存入顯示數組:
dis[2]=(temp/100)%10+’0’;//將溫度變量temp的百位存入數組的dis[2]
dis[1]=(temp/10)%10+’0’; //將溫度變量temp的十位存入數組的dis[1]
dis[0]=(temp/1)%10+’0’; //將溫度變量temp的個位存入數組的dis[0]
注:最后的“+’0’”是將實際的數據位轉換為ASCII碼,因為觸屏不是只能識別字符串嗎,那么英文和數字一般都需要轉換為ASCII碼的。
        用幾條串口發送語句進行分別發送:
(1)        先發送指令字符串的頭部:“t1.txt=”溫度:”;
(2)        再用單字節語句發送溫度變量部分,先高位后低位:依次為先dis[2]、dis[1]、dis[0];
(3)        再發送單位的字符串:“℃””;
最后發送結束符。
一般這樣處理之后,溫度變量temp是根據儀表的信號隨時變化的,字符數組dis[]緊接著根據temp的變化而改變。雖然是分為了幾條發送語句進行的,但是最終另外的設備從串口接收到的數據與用一條語句發送的結果是一樣的。
這樣一來,就能順利地將變量嵌入到字符串指令之中,實現觸屏的變量顯示。
當然,方法千萬種,這只是其中一個方法,可能不是最優,但是比較簡單。本文也不是什么高深的技術,一點分享而已,希望有幫助。
全文完,但是分享并沒有結束。

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线一区二区三区 | 久久国产精品一区二区三区 | 久久精品亚洲 | 久久久蜜桃 | 神马福利 | 欧美日韩在线一区二区三区 | 天天操夜夜操免费视频 | 久久精品一区 | 天天干天天操天天看 | 亚洲欧美一区二区三区国产精品 | 精品久久久久久红码专区 | 成人做爰69片免费观看 | 最近日韩中文字幕 | 伊人激情网 | 国产1区2区在线观看 | 亚洲一区不卡在线 | 亚洲情侣视频 | 国产1区在线 | 成人福利电影 | 久久久精品网 | 亚洲精品一区二区三区四区高清 | 中文字幕1区2区 | 人人操日日干 | 亚洲精品中文字幕在线观看 | 国内精品久久久久 | 国产精品国产成人国产三级 | 在线免费小视频 | 国产精品久久久久久福利一牛影视 | 国产91丝袜在线18 | 欧美二区三区 | 国产精品不卡视频 | 国产在线视频99 | 国产精品一区二区在线播放 | 成年人国产在线观看 | 国产黄色在线观看 | 精品福利在线视频 | 大伊人久久 | 一级毛片网 | 日本国产欧美 | 欧美激情一区二区三级高清视频 | 综合一区|