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

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

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

3天內不再提示

教你們STM32如何收發float類型數據

FPGA之家 ? 來源:開源博客 ? 作者:學以解憂 ? 2021-04-09 16:49 ? 次閱讀

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

fedd4e54-990e-11eb-8b86-12bb97331649.png

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

02044fa6-990f-11eb-8b86-12bb97331649.png

我們創建一個用于管理float類型數據的共用體:

unionfloat_data { floatf_data; uint8_tbyte[4]; };

數據的流向如:

02316d10-990f-11eb-8b86-12bb97331649.png

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

創建兩個共用體變量,用于發送與接收:

unionfloat_datarx_float_data,tx_float_data;

收發相關代碼:

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

// 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接收到串口助手發送的float類型對應的16進制數據存于rx_float_data.byte中,并打印輸出rx_float_data.byte的各個字節,此時rx_float_data.f_data就是我們接收的浮點數據,接收到的數據加上1.0后賦予tx_float_data.f_data再通過UART3把tx_float_data.byte發送出去。

運行結果:

029ca5da-990f-11eb-8b86-12bb97331649.png

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

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

http://www.styb.cn/cms/ieee_754.php

02c9b12e-990f-11eb-8b86-12bb97331649.png

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

02edf03e-990f-11eb-8b86-12bb97331649.png

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

02fba01c-990f-11eb-8b86-12bb97331649.png

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

032a68ac-990f-11eb-8b86-12bb97331649.png

編輯:jq

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

    關注

    14

    文章

    1580

    瀏覽量

    78359
  • STM
    STM
    +關注

    關注

    1

    文章

    557

    瀏覽量

    42906
  • float
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7850

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

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    IO-Link收發器怎么數據讀取

    扮演著關鍵角色,它們負責數據的發送和接收。本文將深入探討IO-Link收發器如何讀取數據,包括其工作原理、硬件和軟件要求、數據類型及應用場景等,為您提供一份詳盡的技術指南。
    的頭像 發表于 02-02 16:34 ?450次閱讀

    Air780E模組LuatOS開發實戰 —— 手把手教你搞定數據打包解包

    本文要說的是低功耗4G模組Air780E的LuatOS開發實戰,我將手把手教你搞定數據打包解包。
    的頭像 發表于 12-03 11:17 ?485次閱讀
    Air780E模組LuatOS開發實戰 —— 手把手<b class='flag-5'>教你</b>搞定<b class='flag-5'>數據</b>打包解包

    請問TLV320AIC3106怎么轉換32位float數據

    TLV320AIC3106怎么轉換32位float數據
    發表于 11-05 08:07

    如何設計一個射頻收發

    在上期的文章中,我們介紹了常見的射頻收發類型和相應的應用場景。那么如何才能設計一個性能優異的射頻收發機呢? 系統架構 射頻收發機設計的第一步是確定系統性能指標,各項指標的需求將直接決
    發表于 09-20 15:08 ?573次閱讀
    如何設計一個射頻<b class='flag-5'>收發</b>機

    鴻蒙原生應用元服務開發-倉頡基礎數據類型整數類型

    是整數類型或浮點類型。 % 的操作數只支持整數類型。 ** 的左操作數只能為 Int64 類型Float64
    發表于 09-13 14:55

    鴻蒙原生應用元服務開發-倉頡基礎數據類型元組類型

    二元,例如,(Int64, Float64) 表示一個二元組類型,(Int64, Float64, String) 表示一個三元組類型。 元組的長度是固定的,即一旦定義了一個元組
    發表于 09-12 11:02

    鴻蒙原生應用元服務開發-倉頡基礎數據類型浮點類型

    浮點類型包括 Float16、 Float32 和 Float64,分別用于表示編碼長度為 16-bit、 32-bit 和 64-bit 的浮點數(帶小數部分的數字,如 3.1415
    發表于 09-10 10:22

    如何提高單片機的運算效率之FPU

    只要STM32或者其他32位單片機,自帶FPU功能,就可以加速float類型數據的加減乘除運算。在STM32中要啟用FPU,需要啟動滿足兩個
    的頭像 發表于 08-30 11:47 ?1039次閱讀
    如何提高單片機的運算效率之FPU

    收發器的接口類型及安裝和維護

    收發器(Optical Transceiver)是一種用于光纖通信系統中的光電轉換設備,它將電信號轉換為光信號,或將光信號轉換為電信號。在現代通信系統中,光收發器被廣泛應用于各種場景,如數據
    的頭像 發表于 08-23 10:16 ?989次閱讀

    i2s_read返回的內存指針可以是float類型的數組嗎?

    (aux in輸入的音頻信號),如果我把float 改成int16_t就沒有問題了,但是我后續的數據處理精度需要是float數據類型,誰能給解答一下?i2s_read返回的到底是整形還
    發表于 06-28 08:07

    STM32串口1同時收發數據卡在回調函數中怎么解決?

    只能正常收發幾次,卡住后進入不了user_main_program 同時使用了串口2連接esp8266進行數據收發
    發表于 05-29 06:34

    請問STM32F4DISCOVERY下面的USB OTG可以直接接電腦傳輸數據嗎?

    如題,我看STM32F4DISCOVERY 下面有USB接口說是USB OTG,我對于USB不是很理解,問一下這個接口可以直接接在電腦上面與電腦傳輸數據嗎?還有一個問題就是你們知道
    發表于 05-17 06:33

    想用stm32f407完成數據收發功能,想裸機以中斷的方式控制數據收發,不知道該方案是否可行?

    想用stm32f407完成數據收發功能,暫時不想移植協議棧,想裸機以中斷的方式控制數據收發,不知道該方案是否可行?有沒有相關的例程?希望
    發表于 05-17 06:26

    STM32F107網口通信,不能收發數據的原因?

    最近在調試STM32F107網口,用的是lwip協議棧,當板子通過路由器與電腦相連的時候,通信都是正常的,但與另外一塊電路板(一樣的電路板,IP地址不同)通信的時候不能收發數據,但它也可以和電腦進行
    發表于 05-13 06:58

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

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

    電子發燒友

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

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品
    主站蜘蛛池模板: 佐山爱巨大肥臀在线 | 蜜芽tv在线观看免费网站 | 美女撒尿无遮挡免费中国 | 和姐姐做插得很深 | 日本一区二区三区在线观看网站 | 88福利视频 | 精品一区二区三区四区五区六区 | 护士喂我吃乳液我脱她内裤 | 久久久国产精品免费A片蜜臀 | 女子叉开腿让男子桶免费软件 | 美国一级黄色 | 亚洲一区二区影院 | 无颜之月全集免费观看 | 好湿好滑好硬好爽好深视频 | 国内精品自线在拍2020不卡 | 性肥胖BWBWBW | 亚洲色综合中文字幕在线 | caoporn超碰视频 | BLACKED太粗太长 | 亚洲视频在线观看视频 | 女侠含泪巨臀迎合79 | 欧美成人无码A区在线观看免费 | 亚洲人成网站在线播放 | 国产Av影片麻豆精品传媒 | 久久爽狠狠添AV激情五月 | 在线观看成人免费视频 | 天天噜日日噜夜夜噜 | 亚洲欧洲免费三级网站 | 成人影片迅雷下载 | 国产AV精品无码免费看 | 精品久久久久中文字幕日本 | 一级毛片免费在线播放 | chinese极品嫩模videos | 午夜性色一区二区三区不卡视频 | 国内精品七七久久影院 | 国产成人a在一区线观看高清 | 试看做受120秒免费午夜剧场 | 国精产品砖一区二区三区糖心 | 精品久久电影网 | 成人国产精品玖玖热色欲 | 99re在这里只有精品 |