欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機串口接收端數據分離問題

查看數: 1883 | 評論數: 10 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2024-5-12 14:05

正文摘要:

大家好,占用大家寶貴時間請指點。 主機傳送,用串口助手接收正常的。在接收端似乎是ASCII碼的hex,請教各位,如何在從機端才能分離出110這個數字在數碼管顯示出來。 傳送代碼如下: unsigned int    ...

回復

ID:705846 發表于 2024-5-15 13:02
應該是從4開始,但就取少一位。沒有搞明白是怎么回事。必須從5開始。
ID:844772 發表于 2024-5-13 15:32
你這句不就是分離的嗎?  for(i=5;i<8;i++)     temp=(char)temp*10+(str[i]-30);
但是有兩個問題:一是,i應該從4開始;二是,30 是十六進制,應該用48
ID:161164 發表于 2024-5-13 10:24



ID:883242 發表于 2024-5-12 20:12
sprintf(%d)的長度是不固定的,可能是“1”、也可能是“10”,還可能是“110”,那就要從最后的\n開始向前分離數字,直到遇到字母為止。
ID:1034262 發表于 2024-5-12 18:38
ASCII編碼而已,直接按ASCII判斷就可以了。哪怕有中文,都一樣可以分離出來。
ID:73992 發表于 2024-5-12 18:08
數字asc碼,110三個字節。百位,十位,個位分別減0x30.百位得到值0x01再乘以100,十位得到值01再乘以10,個位得到值00。這三個字節數字的和就是可計算的值。
ID:1109793 發表于 2024-5-12 16:29
samxon 發表于 2024-5-12 16:22
把time110后面的110變成可以計算的110,然后用數碼管顯示出來。

ASCII好像是直接減去一個數字就變成數字了吧,好像是0x30,這樣直接拿去顯示就好了吧,不需要再整成一個變量,再分解BCD碼,多麻煩啊
ID:705846 發表于 2024-5-12 16:22
xiaobendan001 發表于 2024-5-12 16:17
樓主意思大概是把字符串110變成三個數字,1,1,0;

把time110后面的110變成可以計算的110,然后用數碼管顯示出來。
ID:1109793 發表于 2024-5-12 16:17
lxh2002 發表于 2024-5-12 15:58
如果數據長度是固定的,用一個數組接收數據,把time作為數據頭,找到數據頭,第五位就是你要的

樓主意思大概是把字符串110變成三個數字,1,1,0;
ID:237471 發表于 2024-5-12 15:58
如果數據長度是固定的,用一個數組接收數據,把time作為數據頭,找到數據頭,第五位就是你要的

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表