在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32如何收發(fā)float類(lèi)型數(shù)據(jù)?

麥克泰技術(shù) ? 來(lái)源: 嵌入式大雜燴 ? 作者: 嵌入式大雜燴 ? 2024-01-05 11:14 ? 次閱讀

在之前文章里提到了共用體用來(lái)傳輸浮點(diǎn)數(shù)的用法,但那篇筆記中沒(méi)有詳細(xì)介紹,這篇筆記我們一起來(lái)看一看具體實(shí)例。

實(shí)際應(yīng)用中,我們可能需要兩個(gè)設(shè)備通過(guò)串口傳輸浮點(diǎn)數(shù)據(jù):

71de583a-ab77-11ee-8b88-92fbcf53809c.png

本篇筆記為了方便演示,使用串口助手模擬其中一個(gè)設(shè)備,本篇筆記內(nèi)容如下:

71f1efda-ab77-11ee-8b88-92fbcf53809c.png

我們創(chuàng)建一個(gè)用于管理float類(lèi)型數(shù)據(jù)的共用體:

unionfloat_data
{
floatf_data;
uint8_tbyte[4];
};

數(shù)據(jù)的流向如:

7212186e-ab77-11ee-8b88-92fbcf53809c.png

本次使用串口助手模擬發(fā)送設(shè)備,省略了第一步,主要看第②、③步。

創(chuàng)建兩個(gè)共用體變量,用于發(fā)送與接收:

unionfloat_datarx_float_data,tx_float_data;

收發(fā)相關(guān)代碼:

左右滑動(dòng)查看全部代碼>>>

//公眾號(hào):嵌入式大雜燴
if(HAL_UART_Receive(&huart3,rx_float_data.byte,4,1000)==HAL_OK)
{
printf("rx_float_data.byte[0]=%.2x(addr:%#x)
",rx_float_data.byte[0],&rx_float_data.byte[0]);
printf("rx_float_data.byte[1]=%.2x(addr:%#x)
",rx_float_data.byte[1],&rx_float_data.byte[1]);
printf("rx_float_data.byte[2]=%.2x(addr:%#x)
",rx_float_data.byte[2],&rx_float_data.byte[2]);
printf("rx_float_data.byte[3]=%.2x(addr:%#x)
",rx_float_data.byte[3],&rx_float_data.byte[3]);
printf("rx_float_data.f_data=%f(addr:%#x)
",(float)rx_float_data.f_data,&rx_float_data.f_data);
tx_float_data.f_data=rx_float_data.f_data+1.0f;
printf("tx_float_data.f_data=%f
",tx_float_data.f_data);
HAL_UART_Transmit(&huart3,tx_float_data.byte,4,1000);
}

代碼很簡(jiǎn)單,UART3接收到串口助手發(fā)送的float類(lèi)型對(duì)應(yīng)的16進(jìn)制數(shù)據(jù)存于rx_float_data.byte中,并打印輸出rx_float_data.byte的各個(gè)字節(jié),此時(shí)rx_float_data.f_data就是我們接收的浮點(diǎn)數(shù)據(jù),接收到的數(shù)據(jù)加上1.0后賦予tx_float_data.f_data再通過(guò)UART3把tx_float_data.byte發(fā)送出去。

運(yùn)行結(jié)果:

7224de90-ab77-11ee-8b88-92fbcf53809c.png

這里以傳輸數(shù)據(jù)1.28為例,1.28對(duì)應(yīng)的十六進(jìn)制數(shù)據(jù)是什么呢?

我們可以通過(guò)一些在線(xiàn)網(wǎng)站查看,比如

723bdadc-ab77-11ee-8b88-92fbcf53809c.png

1.28對(duì)應(yīng)的十六進(jìn)制為:3FA3D70A。因?yàn)?a href="http://www.xsypw.cn/v/tag/751/" target="_blank">STM32是小端模式,所以使用串口助手發(fā)送時(shí)需要進(jìn)行一個(gè)逆序,即發(fā)送0AD7A33F。從實(shí)驗(yàn)結(jié)果可以看到:

72465638-ab77-11ee-8b88-92fbcf53809c.png

STM32收到1.28之后,加上1.0之后通過(guò)UART3發(fā)回上位機(jī),2.28對(duì)應(yīng)4011EB85:

72595968-ab77-11ee-8b88-92fbcf53809c.png

這里我們使用串口助手來(lái)模擬一個(gè)設(shè)備,所以需要查一下我們要發(fā)送的float數(shù)據(jù)對(duì)應(yīng)的十六進(jìn)制數(shù)據(jù)。實(shí)際兩個(gè)設(shè)備之間做傳輸是不需要這么做的,想發(fā)什么就傳什么就可以:

726e51ba-ab77-11ee-8b88-92fbcf53809c.png

以上就是本次的分享,如有錯(cuò)誤,歡迎指出,謝謝!本篇筆記對(duì)應(yīng)的工程是在小熊派STM32開(kāi)發(fā)板上做驗(yàn)證的,可在后臺(tái)回復(fù)關(guān)鍵字:收發(fā)float數(shù)據(jù)實(shí)驗(yàn),即可獲取。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7134

    瀏覽量

    89471
  • STM32
    +關(guān)注

    關(guān)注

    2272

    文章

    10923

    瀏覽量

    357299
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1557

    瀏覽量

    76943
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4823

    瀏覽量

    68956
  • float
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7787

原文標(biāo)題:STM32如何收發(fā)float類(lèi)型數(shù)據(jù)?

文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    浮點(diǎn)型float數(shù)據(jù)類(lèi)型在內(nèi)存中的表示方法

    嵌入式系統(tǒng)的串口數(shù)據(jù)傳輸都是以字節(jié)為單位,但是有些特殊的數(shù)據(jù)類(lèi)型,比如浮點(diǎn)型float a=231.5,在內(nèi)存是如何表示的呢?
    發(fā)表于 10-17 14:19 ?1468次閱讀

    關(guān)于stm32 unsigned int轉(zhuǎn)float數(shù)據(jù)變化問(wèn)題求解

    Temp的值是2147553344 (0x80011040)數(shù)據(jù)類(lèi)型是unsigned int型 Temp_float的值是2.14755328e+009數(shù)據(jù)類(lèi)型float
    發(fā)表于 05-08 06:48

    float類(lèi)型數(shù)據(jù)是否合理判斷

    float類(lèi)型數(shù)據(jù)是否合理判斷_chkfloat_單片機(jī)內(nèi)嵌函數(shù)是怎么實(shí)現(xiàn)的?也就是怎么判斷一個(gè)float數(shù)據(jù)是否合理的方法?出錯(cuò)可能是正溢
    發(fā)表于 07-22 16:17

    單片機(jī)串口如何發(fā)生float數(shù)據(jù)

    如題,char的數(shù)據(jù)或是數(shù)組我會(huì)發(fā),可是float類(lèi)型的怎么發(fā)呢,串口一次只能發(fā)8位的數(shù)據(jù),像int或float這種超過(guò)8位的不知道怎么辦好
    發(fā)表于 05-24 09:10

    關(guān)于一個(gè)float類(lèi)型數(shù)據(jù)在keil c中保留幾位小數(shù)點(diǎn)

    想請(qǐng)教一下各位大神,一個(gè)float類(lèi)型數(shù)據(jù)在keil c中保留幾位小數(shù)點(diǎn)?只想要前四位小數(shù),如何去除我不想要的小數(shù)呢?
    發(fā)表于 05-05 21:35

    STVD COMSIC編譯器無(wú)法調(diào)試double/float數(shù)據(jù)類(lèi)型

    大家好, 我在使用COSMIC C編譯器在STVD中使用double或float數(shù)據(jù)類(lèi)型時(shí)遇到了一些問(wèn)題。 我能夠聲明這些數(shù)據(jù)類(lèi)型但是當(dāng)我開(kāi)始調(diào)試并想要觀察變量時(shí),STVD顯示了奇怪的值。例如
    發(fā)表于 01-04 15:48

    請(qǐng)問(wèn)STM32如何收發(fā)float類(lèi)型數(shù)據(jù)

    請(qǐng)問(wèn)STM32如何收發(fā)float類(lèi)型數(shù)據(jù)
    發(fā)表于 12-13 07:00

    如何將float數(shù)據(jù)存到flash中

    項(xiàng)目場(chǎng)景:在靈動(dòng)MCU平臺(tái)基于逐飛科技開(kāi)源的RTT庫(kù),將一個(gè)float類(lèi)型數(shù)據(jù)變量保存到flash中;問(wèn)題描述:寫(xiě)和讀flash數(shù)據(jù)的接口是uint32
    發(fā)表于 12-13 06:54

    如何用串口傳輸float類(lèi)型數(shù)據(jù)

    單片機(jī)小知識(shí)如何使用串口傳輸float類(lèi)型數(shù)據(jù)比較難的就是數(shù)據(jù)進(jìn)制的轉(zhuǎn)化模擬量比如說(shuō) 角度 距離速度 這些是10進(jìn)制,串口通信用的是16進(jìn)制 , 數(shù)
    發(fā)表于 01-19 06:12

    C語(yǔ)言怎么輸入float的變量,c語(yǔ)言float怎么用

    C語(yǔ)言中float是什么意思我是出自學(xué)者,有很多不會(huì)的,float是什么東東,什么意思啊,還有在程序float是C語(yǔ)言的基本數(shù)據(jù)類(lèi)型中的一種,表示單精度浮點(diǎn)數(shù)。 C語(yǔ)言規(guī)定單精度浮點(diǎn)型
    發(fā)表于 03-29 10:36

    如何把float類(lèi)型的變量發(fā)送到串口調(diào)試助手?

    有位小伙伴問(wèn),怎么把float類(lèi)型的變量發(fā)送到串口調(diào)試助手?在這里給大家統(tǒng)一說(shuō)一下。 什么時(shí)候用float類(lèi)型的變量? 單片機(jī)計(jì)算數(shù)據(jù),當(dāng)用
    發(fā)表于 06-15 07:24

    STM32F407的串口采用DMA收發(fā)數(shù)據(jù)

    STM32F407的串口采用DMA收發(fā)數(shù)據(jù)調(diào)試可用!
    發(fā)表于 06-17 16:00 ?60次下載

    如何在STM32收發(fā)float數(shù)據(jù)

    實(shí)際應(yīng)用中,我們可能需要兩個(gè)設(shè)備通過(guò)串口傳輸浮點(diǎn)數(shù)據(jù): 本篇筆記為了方便演示,使用串口助手模擬其中一個(gè)設(shè)備,本篇筆記內(nèi)容如下: 我們創(chuàng)建一個(gè)用于管理float類(lèi)型數(shù)據(jù)的共用體: uni
    的頭像 發(fā)表于 04-02 17:03 ?3682次閱讀
    如何在<b class='flag-5'>STM32</b>中<b class='flag-5'>收發(fā)</b><b class='flag-5'>float</b><b class='flag-5'>數(shù)據(jù)</b>?

    教你們STM32如何收發(fā)float類(lèi)型數(shù)據(jù)

    實(shí)際應(yīng)用中,我們可能需要兩個(gè)設(shè)備通過(guò)串口傳輸浮點(diǎn)數(shù)據(jù): 本篇筆記為了方便演示,使用串口助手模擬其中一個(gè)設(shè)備,本篇筆記內(nèi)容如下: 我們創(chuàng)建一個(gè)用于管理float類(lèi)型數(shù)據(jù)的共用體: uni
    的頭像 發(fā)表于 04-09 16:49 ?3936次閱讀
    教你們<b class='flag-5'>STM32</b>如何<b class='flag-5'>收發(fā)</b><b class='flag-5'>float</b><b class='flag-5'>類(lèi)型</b><b class='flag-5'>數(shù)據(jù)</b>

    什么是數(shù)據(jù)類(lèi)型轉(zhuǎn)換

    常用的3種數(shù)據(jù)類(lèi)型:1、Python數(shù)據(jù)類(lèi)型第一種:字符串(str)。 2、Python數(shù)據(jù)類(lèi)型第二種:整數(shù)(int)。 3、Python數(shù)據(jù)類(lèi)型第三種:浮點(diǎn)數(shù)(
    的頭像 發(fā)表于 02-23 15:21 ?1813次閱讀
    主站蜘蛛池模板: 国内一级特黄女人精品毛片 | 可以看黄色的网站 | 国产精品国产三级国产普通话对白 | 狠狠色成人综合首页 | 老师解胸罩喂我吃奶 | 久久久国产在线 | 国产精品激情综合久久 | 国产一区二区三区免费大片天美 | 国产一级大片在线观看 | 久久98精品久久久久久婷婷 | 日本特级黄色录像 | 午夜伦伦 | 一级特黄性色生活片一区二区 | 欧美一级片手机在线观看 | 毛片高清一区二区三区 | 欧美黄三级在线观看 | 久视频在线观看久视频 | 亚洲开心激情网 | 男女网站在线观看 | 国产一级特黄aa大片爽爽 | 在线观看三级视频 | 天天好比| 综合欧美亚洲 | 天堂免费观看 | 性欧美精品久久久久久久 | 五月六月伊人狠狠丁香网 | 国产午夜精品片一区二区三区 | 亚洲国产成+人+综合 | 女18poren69| 人人插人人艹 | 久久都是精品 | 国产片18在线观看 | 色综合久久网 | 久久精品视频99精品视频150 | 色综合天天综久久久噜噜噜久久〔 | 久久久久久久免费 | 日韩欧美一区二区三区不卡视频 | 国产三片理论电影在线 | 免费在线观看的视频 | 精品国内视频 | 四虎国产欧美成人影院 |