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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

如何把float類型的變量發(fā)送到串口調(diào)試助手,float在單片機(jī)中的存儲方式.

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:91350 發(fā)表于 2015-10-29 11:52 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

有位小伙伴問,怎么把float類型的變量發(fā)送到串口調(diào)試助手?在這里給大家統(tǒng)一說一下。
什么時候用float類型的變量?
單片機(jī)計算數(shù)據(jù),當(dāng)用到小數(shù)的時候,我們一般就定義一個float類型的變量。
float類型占用幾個字節(jié)?
我們知道,char占用1個字節(jié),int占用2個字節(jié)。那么float類型的變量占用幾個字節(jié)呢?答案是4個。
float類型變量存儲遵循IEEE 754標(biāo)準(zhǔn),關(guān)于IEEE754標(biāo)準(zhǔn),你可以去百度,不過你看了也會頭大,不一定能看懂。看懂看不懂,都不重要了。
那么,比如,3.141這個數(shù)在單片機(jī)中存儲的4個字節(jié)分別是多少呢?
你可以借助一個軟件(浮點數(shù)十六進(jìn)制轉(zhuǎn)換器)來看,
如下所示:
浮點數(shù):30141
十六進(jìn)制:單精度float:40490625



如果你不想用這個軟件,可以把4個字節(jié)發(fā)送到串口調(diào)試助手來看。不過,float類型的變量是不能進(jìn)行位移運(yùn)算的。所以,假如你定義了一個x變量,當(dāng)你寫語句UART_Send(xxx>>24);UART_Send(xxx>>16);UART_Send(xxx>>8);UART_Send(xxx);的時候,編譯器會報錯。而當(dāng)你用int把float強(qiáng)制轉(zhuǎn)換后,就會只剩下整數(shù)部分,實際上,4個字節(jié)的內(nèi)容已經(jīng)改變。
正確方法:
用c語言關(guān)鍵字union來解決。
union xxx
{
char c[4];
float f;
}y;
定義一個“共用體”xxx,y作為“共用體變量”,里面再定義一個char類型的變量數(shù)組c[4]和float類型的變量f。
根據(jù)union的定義,里面的變量占用同一個內(nèi)存地址。所以,c[4]和f的內(nèi)存地址是一樣的,說的再通俗一點,就是c[4]的4個數(shù)實際上就是f的四個字節(jié)。
接著前面提出的問題。把3.141給了f,即f=3.141,那么,你就可以把c[4]數(shù)組的4個字節(jié)發(fā)送到串口調(diào)試助手了。
y.f=3.141;
UART_Send(y.c[0]);
UART_Send(y.c[1]);
UART_Send(y.c[2]);
UART_Send(y.c[3]);

評分

參與人數(shù) 1黑幣 +5 收起 理由
moyuqilin + 5 絕世好帖!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:77578 發(fā)表于 2016-2-2 15:30 | 只看該作者
我把這個4字節(jié)發(fā)出去以后,串口助手接受,收到的是字節(jié),怎么做才能讓串口助手也能顯示小數(shù)呢
回復(fù)

使用道具 舉報

板凳
ID:126534 發(fā)表于 2019-5-21 16:50 | 只看該作者
moyuqilin 發(fā)表于 2016-2-2 15:30
我把這個4字節(jié)發(fā)出去以后,串口助手接受,收到的是字節(jié),怎么做才能讓串口助手也能顯示小數(shù)呢

把flaot型數(shù)據(jù)如1.23,分別取出第個數(shù)據(jù)位,包括小數(shù)點,依次放到數(shù)據(jù)a[0]-a[3]中,發(fā)送到串口,串口調(diào)試助手的十六顯示的勾去掉,就顯示小數(shù)了。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 视频在线亚洲 | 欧美综合在线视频 | av在线一区二区三区 | 在线一级片 | 亚洲福利一区 | 久草精品在线 | 伊人网伊人 | 亚洲精品在线免费观看视频 | 中日av | 亚洲性人人天天夜夜摸 | 综合色久 | 色视频网站 | 爱爱小视频 | 在线视频一区二区 | 欧美日韩在线一区二区三区 | 国产精品免费福利 | 亚洲欧美在线视频 | 国产精品资源在线 | 国产精品成人在线 | 伊人超碰 | 精品久久久久久亚洲精品 | 国产精品一区二区在线播放 | 一区二区三区国产 | 性色av香蕉一区二区 | 99re在线免费视频 | 国产精品一区二区日韩 | 色综合激情 | 成年人在线观看 | 国产一区二区在线视频 | 国产视频福利 | 国产 日韩 欧美 在线 | 成人精品免费视频 | 久久国际精品 | 九九综合 | 2021狠狠干| 操操网站 | 国产在线资源 | 国产成人jvid在线播放 | 精品欧美一区二区三区久久久 | 亚洲一区二区在线播放 | 黄色一级视频 |