色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32如何收發(fā)float類型數據?

麥克泰技術 ? 來源: 嵌入式大雜燴 ? 作者: 嵌入式大雜燴 ? 2024-01-05 11:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在之前文章里提到了共用體用來傳輸浮點數的用法,但那篇筆記中沒有詳細介紹,這篇筆記我們一起來看一看具體實例。

實際應用中,我們可能需要兩個設備通過串口傳輸浮點數據:

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

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

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

我們創(chuàng)建一個用于管理float類型數據的共用體:

unionfloat_data
{
floatf_data;
uint8_tbyte[4];
};

數據的流向如:

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

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

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

unionfloat_datarx_float_data,tx_float_data;

收發(fā)相關代碼:

左右滑動查看全部代碼>>>

//公眾號:嵌入式大雜燴
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);
}

代碼很簡單,UART3接收到串口助手發(fā)送的float類型對應的16進制數據存于rx_float_data.byte中,并打印輸出rx_float_data.byte的各個字節(jié),此時rx_float_data.f_data就是我們接收的浮點數據,接收到的數據加上1.0后賦予tx_float_data.f_data再通過UART3把tx_float_data.byte發(fā)送出去。

運行結果:

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

這里以傳輸數據1.28為例,1.28對應的十六進制數據是什么呢?

我們可以通過一些在線網站查看,比如

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

1.28對應的十六進制為:3FA3D70A。因為STM32是小端模式,所以使用串口助手發(fā)送時需要進行一個逆序,即發(fā)送0AD7A33F。從實驗結果可以看到:

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

STM32收到1.28之后,加上1.0之后通過UART3發(fā)回上位機,2.28對應4011EB85:

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

這里我們使用串口助手來模擬一個設備,所以需要查一下我們要發(fā)送的float數據對應的十六進制數據。實際兩個設備之間做傳輸是不需要這么做的,想發(fā)什么就傳什么就可以:

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

以上就是本次的分享,如有錯誤,歡迎指出,謝謝!本篇筆記對應的工程是在小熊派STM32開發(fā)板上做驗證的,可在后臺回復關鍵字:收發(fā)float數據實驗,即可獲取。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7250

    瀏覽量

    91503
  • STM32
    +關注

    關注

    2291

    文章

    11022

    瀏覽量

    363405
  • 串口
    +關注

    關注

    15

    文章

    1586

    瀏覽量

    79558
  • 代碼
    +關注

    關注

    30

    文章

    4893

    瀏覽量

    70439
  • float
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7883

原文標題:STM32如何收發(fā)float類型數據?

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    浮點型float數據類型在內存中的表示方法

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

    關于stm32 unsigned int轉float數據變化問題求解

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

    float類型數據是否合理判斷

    float類型數據是否合理判斷_chkfloat_單片機內嵌函數是怎么實現的?也就是怎么判斷一個float數據是否合理的方法?出錯可能是正溢
    發(fā)表于 07-22 16:17

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

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

    關于一個float類型數據在keil c中保留幾位小數點

    想請教一下各位大神,一個float類型數據在keil c中保留幾位小數點?只想要前四位小數,如何去除我不想要的小數呢?
    發(fā)表于 05-05 21:35

    STVD COMSIC編譯器無法調試double/float數據類型

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

    請問STM32如何收發(fā)float類型數據

    請問STM32如何收發(fā)float類型數據
    發(fā)表于 12-13 07:00

    如何將float數據存到flash中

    項目場景:在靈動MCU平臺基于逐飛科技開源的RTT庫,將一個float類型數據變量保存到flash中;問題描述:寫和讀flash數據的接口是uint32
    發(fā)表于 12-13 06:54

    如何用串口傳輸float類型數據

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

    C語言怎么輸入float的變量,c語言float怎么用

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

    如何把float類型的變量發(fā)送到串口調試助手?

    有位小伙伴問,怎么把float類型的變量發(fā)送到串口調試助手?在這里給大家統一說一下。 什么時候用float類型的變量? 單片機計算數據,當用
    發(fā)表于 06-15 07:24

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

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

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

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

    教你們STM32如何收發(fā)float類型數據

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

    什么是數據類型轉換

    常用的3種數據類型:1、Python數據類型第一種:字符串(str)。 2、Python數據類型第二種:整數(int)。 3、Python數據類型第三種:浮點數(
    的頭像 發(fā)表于 02-23 15:21 ?1989次閱讀
    主站蜘蛛池模板: 国产精品一区二区免费 | 国产3级在线 | 日本xxxxxxxxx老师59 | 久久re6热在线视频 久久er国产免费精品 | 亚洲欧美日韩另类精品一区二区三区 | 久久国产精品永久免费网站 | 久久偷拍国2017的 | 肉奴隷 赤坂丽在线播放 | 亚洲午夜精品A片久久软件 亚洲午夜精品A片久久不卡蜜桃 | 1000视频在线播放 | 亚洲欧美综合视频 | 秋霞电影在线观看午夜伦 | 在线视频一区二区三区在线播放 | 国产成人mv 在线播放 | 国产精品69人妻无码久久久 | 沙发上小泬12P | 91麻豆国产精品91久久久 | 中国老太婆xxxxx | 美女被触手注入精子强制受孕漫画 | 永久精品视频无码一区 | 久久91精品国产91 | 成熟YIN荡美妞A片视频麻豆 | 全免费午夜一级毛片 | 婚后被调教当众高潮H喷水 回复术士勇者免费观看全集 | YELLOW高清视频免费观看 | 亚洲m男在线中文字幕 | 夫妻性姿势真人做视频 | 动漫美女性侵 | 国精产品一区二区三区四区糖心 | 猫咪www958ii | 日本妈妈在线观看中文字幕 | 国产精品AV色欲蜜臀在线 | 风月宝鉴之淫乱英雄传 电影 | 亚洲视频免费看 | 国产大片51精品免费观看 | 国产亚洲精品久久久久久国 | 亚洲精品国产自在现线最新 | 日日噜噜噜噜夜夜爽亚洲精品 | 女的把腿张开男的往里面插 | 中文无码乱人伦中文视频播放 | 欧美视频精品一区二区三区 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品