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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2602|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)串口收發(fā)數(shù)據(jù)進(jìn)制轉(zhuǎn)換問題

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
大家好,摸索很久還是沒弄清楚,請(qǐng)教大家問題,請(qǐng)給予指點(diǎn)。謝謝大家

51單片機(jī)雙機(jī)通信,

問題一:我想發(fā)送250這個(gè)十進(jìn)制數(shù),接收端接收的是否是經(jīng)過轉(zhuǎn)換的16進(jìn)制數(shù),如果我要在接收端存儲(chǔ)或者比較這個(gè)數(shù)大小,是否要用額外的函數(shù)把接收的16進(jìn)制數(shù)轉(zhuǎn)成10進(jìn)制數(shù)。

問題二:我發(fā)送的一個(gè)10進(jìn)制數(shù),接收端能否直接接收這個(gè)10進(jìn)制數(shù);
比如下面的語句是否可以正常執(zhí)行。
發(fā)送端
set1=250;
SBUF=set1;

接收端
dat=SBUF;
if(dat<250){
......
}else
{
.....
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1109793 發(fā)表于 2024-5-8 15:00 | 只看該作者
發(fā)的啥收的就是啥,無論多少進(jìn)制,在傳輸中都一樣,是否轉(zhuǎn)換只是你要顯示的時(shí)候才有需要。比如你要在數(shù)碼管上顯示就要轉(zhuǎn)換BCD碼送給顯示芯片或者要再查詢出對(duì)應(yīng)的段碼信息送給比如595或者164這樣的;蛘咧苯铀偷侥硞(gè)端口。
回復(fù)

使用道具 舉報(bào)

板凳
ID:192020 發(fā)表于 2024-5-8 15:17 | 只看該作者
傳輸沒有進(jìn)制說法,250換成16進(jìn)制是0xFA,那么以下發(fā)送函數(shù)
(1)set1=250;SBUF=set1;(2)set1=0xFA;SBUF=set1;單片機(jī)處理過程都是一樣的。
回復(fù)

使用道具 舉報(bào)

地板
ID:705846 發(fā)表于 2024-5-8 15:34 | 只看該作者
qq475878026 發(fā)表于 2024-5-8 15:17
傳輸沒有進(jìn)制說法,250換成16進(jìn)制是0xFA,那么以下發(fā)送函數(shù)
(1)set1=250;SBUF=set1;(2)set1=0xFA;SBUF= ...

你好,謝謝你的答復(fù),進(jìn)一步請(qǐng)教,
比如發(fā)送端發(fā)送的是250,接收端接收的是0xFA, 接收端要把接收到的0xFA顯示到數(shù)碼管為250,這之間是怎么轉(zhuǎn)換的。
回復(fù)

使用道具 舉報(bào)

5#
ID:161164 發(fā)表于 2024-5-8 15:48 | 只看該作者
samxon 發(fā)表于 2024-5-8 15:34
你好,謝謝你的答復(fù),進(jìn)一步請(qǐng)教,
比如發(fā)送端發(fā)送的是250,接收端接收的是0xFA, 接收端要把接收到的0xF ...

按位取值

RecBuff = SBUF;
DispBuff[0] = RecBuff /100%10;
DispBuff[1] = RecBuff /10%10;
DispBuff[2] = RecBuff %10;
回復(fù)

使用道具 舉報(bào)

6#
ID:705846 發(fā)表于 2024-5-8 16:02 | 只看該作者
lkc8210 發(fā)表于 2024-5-8 15:48
按位取值

RecBuff = SBUF;

謝謝你,我沒有問明白。 雖然發(fā)送端發(fā)送的是十進(jìn)制250,但接收端接收的是一個(gè)16進(jìn)制數(shù)。也就是0xFA, 我要把0xFA在數(shù)碼管上顯示250, 是否需要轉(zhuǎn)換,如果需要,是如何轉(zhuǎn)換的。
回復(fù)

使用道具 舉報(bào)

7#
ID:192020 發(fā)表于 2024-5-8 16:07 | 只看該作者
samxon 發(fā)表于 2024-5-8 15:34
你好,謝謝你的答復(fù),進(jìn)一步請(qǐng)教,
比如發(fā)送端發(fā)送的是250,接收端接收的是0xFA, 接收端要把接收到的0xF ...

就是按五樓的方法,你不用糾結(jié)接收端收到的是0xFA還是250,因?yàn)榻邮斩私邮盏木褪且欢?和1。數(shù)碼管需要顯示十進(jìn)制,那就把set1看成十進(jìn)制,然后按五樓方法把百位十位個(gè)位分開來一個(gè)個(gè)顯示。
回復(fù)

使用道具 舉報(bào)

8#
ID:106977 發(fā)表于 2024-5-8 16:26 | 只看該作者
串口通訊實(shí)際也是需要協(xié)議的,自己規(guī)定的協(xié)議。不然你發(fā)送幾個(gè)字節(jié),另一臺(tái)接收設(shè)備怎么解讀這幾個(gè)字節(jié)?
回復(fù)

使用道具 舉報(bào)

9#
ID:192020 發(fā)表于 2024-5-8 16:31 | 只看該作者
samxon 發(fā)表于 2024-5-8 16:02
謝謝你,我沒有問明白。 雖然發(fā)送端發(fā)送的是十進(jìn)制250,但接收端接收的是一個(gè)16進(jìn)制數(shù)。也就是0xFA, 我要 ...

就比如set1這個(gè)變量,你可以說它是0xFA,也可以說它是250都沒錯(cuò),但它只是存在RAM里的一個(gè)數(shù)據(jù),按11111010排列罷了
回復(fù)

使用道具 舉報(bào)

10#
ID:705846 發(fā)表于 2024-5-8 16:49 | 只看該作者
qq475878026 發(fā)表于 2024-5-8 16:31
就比如set1這個(gè)變量,你可以說它是0xFA,也可以說它是250都沒錯(cuò),但它只是存在RAM里的一個(gè)數(shù)據(jù),按111110 ...

謝謝大家耐心指導(dǎo),就是糾結(jié)進(jìn)制轉(zhuǎn)換問題。我先寫個(gè)代碼試試看
回復(fù)

使用道具 舉報(bào)

11#
ID:1109793 發(fā)表于 2024-5-8 17:06 | 只看該作者
samxon 發(fā)表于 2024-5-8 16:02
謝謝你,我沒有問明白。 雖然發(fā)送端發(fā)送的是十進(jìn)制250,但接收端接收的是一個(gè)16進(jìn)制數(shù)。也就是0xFA, 我要 ...

接收端顯示和是否傳輸沒關(guān)系,5樓的方法可以,實(shí)際上/100后不需要%10,因?yàn)橐还瞔har除100剩下的最多就是2。這樣dispbuff[]中的三個(gè)數(shù)就是你要送到例如TM1650這種芯片的數(shù)據(jù)了。又或者別的比如查詢到段碼輸出到595上面。這要看你的顯示電路架構(gòu)了。
回復(fù)

使用道具 舉報(bào)

12#
ID:1109793 發(fā)表于 2024-5-8 17:21 | 只看該作者
xiaobendan001 發(fā)表于 2024-5-8 17:06
接收端顯示和是否傳輸沒關(guān)系,5樓的方法可以,實(shí)際上/100后不需要%10,因?yàn)橐还瞔har除100剩下的最多就是2 ...

好像不對(duì),1650也一樣要查詢段碼的,不好意思,用的少,忘記了。
回復(fù)

使用道具 舉報(bào)

13#
ID:401564 發(fā)表于 2024-5-8 17:58 | 只看該作者
在你串口程序正確的前提下:
1,串口接收到數(shù)據(jù),250就是250,0xFA就是0xFA,沒有進(jìn)制這個(gè)說法的
2,數(shù)碼管顯示是要查詢段碼再進(jìn)行顯示的,這個(gè)單片機(jī)的基礎(chǔ)知識(shí)
3,你要先寫好一個(gè)數(shù)碼管顯示程序,調(diào)試的時(shí)候先直接顯示一個(gè)變量的值,不要管什么串口之類的,只管顯示,先保證顯示程序是OK的
4,代碼先從最小的塊寫起,最后堆積起來就是一個(gè)完整的程序了
回復(fù)

使用道具 舉報(bào)

14#
ID:705846 發(fā)表于 2024-5-8 18:01 | 只看該作者
謝謝樓上的所有大師們,是我想多的,確實(shí)是5樓方法正確。還是不要停留在想上面,要試驗(yàn)實(shí)踐,F(xiàn)在可以正常顯示,看起來多機(jī)通信也沒有想的那么復(fù)雜。都可以同步顯示。

                SendByte(temp);
                delay(1000);
                temp++;
                if(temp>250) temp=1;                       

                num[0] = temp /100%10;
                num[1] = temp /10%10;
                num[2] = temp %10;               
               
               
                Write_DATA(0,tab[num[0]]);
                Write_DATA(2,tab[num[1]]);
                Write_DATA(4,tab[num[2]]);

回復(fù)

使用道具 舉報(bào)

15#
ID:883242 發(fā)表于 2024-5-8 18:39 | 只看該作者
samxon 發(fā)表于 2024-5-8 16:02
謝謝你,我沒有問明白。 雖然發(fā)送端發(fā)送的是十進(jìn)制250,但接收端接收的是一個(gè)16進(jìn)制數(shù)。也就是0xFA, 我要 ...

不要糾結(jié)進(jìn)制問題,你寫的250到了單片機(jī)那里也不是十進(jìn)制,一律是二進(jìn)制。
回復(fù)

使用道具 舉報(bào)

16#
ID:1010435 發(fā)表于 2024-5-8 21:29 | 只看該作者
C語言中250就是十進(jìn)制的250,16進(jìn)制要寫成0xfa,0x就是16進(jìn)制的標(biāo)識(shí),250+0xfa=500=0x01f4
回復(fù)

使用道具 舉報(bào)

17#
ID:458247 發(fā)表于 2024-5-9 08:46 | 只看該作者
samxon 發(fā)表于 2024-5-8 18:01
謝謝樓上的所有大師們,是我想多的,確實(shí)是5樓方法正確。還是不要停留在想上面,要試驗(yàn)實(shí)踐,F(xiàn)在可以正常 ...

多機(jī)通信主要難點(diǎn)在解決從機(jī)沖突問題,比如我想從機(jī)a顯示200,從機(jī)b顯示130,你就要定義一個(gè)通信協(xié)議,每個(gè)從機(jī)都要有個(gè)id才能實(shí)現(xiàn)了,更復(fù)雜的還有很多,比如如何校驗(yàn)通信數(shù)據(jù),如何加密通信數(shù)據(jù)等
回復(fù)

使用道具 舉報(bào)

18#
ID:705846 發(fā)表于 2024-5-9 17:31 來自觸屏版 | 只看該作者
主機(jī)發(fā),所有從機(jī)一起收就可以。暫時(shí)沒用到這么復(fù)雜
回復(fù)

使用道具 舉報(bào)

19#
ID:343102 發(fā)表于 2024-5-9 20:07 | 只看該作者
5樓是高手,串口用ASCII碼傳送數(shù)據(jù)、字符。
回復(fù)

使用道具 舉報(bào)

20#
ID:1110945 發(fā)表于 2024-5-9 20:11 | 只看該作者
samxon 發(fā)表于 2024-5-8 16:02
謝謝你,我沒有問明白。 雖然發(fā)送端發(fā)送的是十進(jìn)制250,但接收端接收的是一個(gè)16進(jìn)制數(shù)。也就是0xFA, 我要 ...

雖然你寫的是十進(jìn)制250,但發(fā)送端發(fā)送的不是十進(jìn)制,而是0xfa,
接收端接收的是0xfa代表能正確接收,單片機(jī)可以存儲(chǔ)或者比較這個(gè)數(shù)的大小。
在單片機(jī)里面不需要轉(zhuǎn)成10進(jìn)制數(shù)。
單片機(jī)不能理解你的“10進(jìn)制數(shù)”,只有輸出到顯示設(shè)備時(shí)才要轉(zhuǎn)換成“10進(jìn)制”
的格式。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 婷婷久久五月 | 日产毛片 | 在线小视频 | 日本国产在线观看 | 触手繁殖の地狱3d啪啪 | 91动漫在线观看 | 免费成人在线观看视频 | 99这里只有精品 | 久久国产精品一区二区三区 | 亚洲午夜18毛片在线看 | 成人三级在线观看 | 久久国产99 | 国产福利91 | 亚洲免费视频一区 | 国产日产精品一区二区三区的介绍 | 成人免费看片在线观看 | 国产精品高潮呻吟久久 | 日本高清网站 | 精品在线观看视频 | 久久99深爱久久99精品 | 精品久久一区 | 人成在线| 午夜免费av | 99热综合 | 免费网站观看www在线观看 | 秋霞一区二区三区 | 亚洲永久免费视频 | 日本精品视频在线 | 欧美精品黄色 | 福利视频网站 | 国产又黄又爽 | 日韩毛片网 | 色鬼久久 | 日本精品国产 | 久久综合激情 | 久久综合在线 | 黄视频免费观看 | 亚洲伊人色 | 国模一区二区三区 | 中文字幕av一区 | 欧美一级淫片免费视频魅影视频 |