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

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

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

3天內不再提示

如何在STM32中收發float數據?

FPGA之家 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2021-04-02 17:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

65ff436e-92eb-11eb-8b86-12bb97331649.png

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

66130a98-92eb-11eb-8b86-12bb97331649.png

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

union float_data

{

float f_data;

uint8_t byte[4];

};

數據的流向如:

66614910-92eb-11eb-8b86-12bb97331649.png

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

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

union float_data rx_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發送出去。

運行結果:

66719c48-92eb-11eb-8b86-12bb97331649.png

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

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

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

66a6fd8e-92eb-11eb-8b86-12bb97331649.png

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

66d416d4-92eb-11eb-8b86-12bb97331649.png

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

66e68d96-92eb-11eb-8b86-12bb97331649.png

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

6700c6ac-92eb-11eb-8b86-12bb97331649.png

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

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

責任編輯:haq

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

    關注

    8

    文章

    7250

    瀏覽量

    91519
  • STM32
    +關注

    關注

    2291

    文章

    11022

    瀏覽量

    363465
  • float
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7884

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32與機智云連接實現步驟與技巧(下篇):機智云代碼移植與優化

    在《STM32與機智云連接實現步驟與技巧(上篇)》,我們介紹了硬件連接和通信協議配置。本篇將重點講解如何將機智云相關代碼移植到STM32,完成數據上傳和設備控制。我們將介紹如
    的頭像 發表于 05-23 18:10 ?212次閱讀
    <b class='flag-5'>STM32</b>與機智云連接實現步驟與技巧(下篇):機智云代碼移植與優化

    何在Simulink啟用ADC校準?

    何在 Simulink 啟用 ADC 校準? V4.2.0 產品發布報告指出,它在塊可用。但我在 ADC 配置塊找不到任何選項。
    發表于 03-31 07:50

    何在SJA1110配置IEEE802.1CB幀復制和冗余消除 (FRER)?

    嗨,我如何在 SJA1110 配置 IEEE802.1CB 幀復制和冗余消除 (FRER),我需要實施進入端口 1 的數據的幀復制需要反映在端口 2 ,以及如何禁用進入端口 1 的
    發表于 03-26 08:02

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

    IO-Link(IEC61131-9)是一個開放的標準串行通信協議,它允許從傳感器和設備雙向交換數據。這些傳感器和設備需要支持IO-Link并連接到主機上。IO-Link收發器在這一通信過程
    的頭像 發表于 02-02 16:34 ?648次閱讀

    labview視覺助手 - machine vision - map defects,輸出float圖像,像素值0.89*39496的0.89是啥意思?

    labview視覺助手 - machine vision - map defects,輸出float圖像,像素值0.89*39496的0.89是啥意思? 無論是二值化,還是圖像轉換,0.89都沒法去掉。
    發表于 01-04 21:20

    何在播放視頻過程插入音頻

    ZDP14x0是一款基于開源GUI引擎的圖像顯示專用驅動芯片,可以通過串口或者SPI與其他芯片通信,且能播放視頻。本文將介紹如何在播放視頻過程插入音頻。
    的頭像 發表于 12-26 11:13 ?1007次閱讀
    如<b class='flag-5'>何在</b>播放視頻過程<b class='flag-5'>中</b>插入音頻

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

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

    何在反激式轉換器緩沖FET關斷電壓

    上一期,我們介紹了如何在正向轉換器導通時緩沖輸出整流器的電壓。現在,我們看一下如何在反激式轉換器緩沖 FET 關斷電壓。
    的頭像 發表于 11-04 09:48 ?683次閱讀
    如<b class='flag-5'>何在</b>反激式轉換器<b class='flag-5'>中</b>緩沖FET關斷電壓

    何在Altium Designer快速定位器件

    想知道如何在Altium Designer快速定位器件嘛?
    的頭像 發表于 10-12 09:28 ?1.3w次閱讀
    如<b class='flag-5'>何在</b>Altium Designer<b class='flag-5'>中</b>快速定位器件

    何在STM32上運行AI應用

    1.X-Linux-AI概述X-LINUX-AI是STM32MPUOpenSTLinux擴展包,面向STM32MP1和STM32MP2系列微處理器的人工智能。它包含LinuxAI框架,以及用于開始
    的頭像 發表于 09-30 08:00 ?3301次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>STM32</b>上運行AI應用

    何在反激式拓撲實現軟啟動

    電子發燒友網站提供《如何在反激式拓撲實現軟啟動.pdf》資料免費下載
    發表于 09-04 11:09 ?0次下載
    如<b class='flag-5'>何在</b>反激式拓撲<b class='flag-5'>中</b>實現軟啟動

    何在FPGA實現隨機數發生器

    分享如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7實現4位偽隨機數發生器(PRNGs)。
    的頭像 發表于 08-06 11:20 ?1152次閱讀
    如<b class='flag-5'>何在</b>FPGA<b class='flag-5'>中</b>實現隨機數發生器

    請問DTU如何在低功耗下正常收發數據

    DTU如何在低功耗下正常收發數據
    發表于 07-25 08:04

    何在SQL創建觸發器

    在SQL,觸發器(Trigger)是一種特殊類型的存儲過程,它自動執行或激活響應表上的數據修改事件(如INSERT、UPDATE、DELETE等)。觸發器可以用于維護數據庫的完整性、自動化復雜
    的頭像 發表于 07-18 16:01 ?3400次閱讀

    XMC1302T028X0016ABXUMA1如何在閃存存儲數據

    你好,我想在 MCU 存儲一些配置參數。 如何在閃存存儲這些數據? 我只需要在發貨前寫一次這些數據。 我指的是這份文件https://w
    發表于 07-04 07:32
    主站蜘蛛池模板: 免费无码一区二区三区蜜桃大 | 伊人久久精品线影院 | 亚洲黄色片免费看 | 国产精品亚洲高清一区二区 | 久久这里只精品国产99re66 | chinese帅哥gv在线看 | 曰批国产精品视频免费观看 | 日本无码专区亚洲麻豆 | 久久久久久久伊人电影 | 日韩中文字幕亚洲无线码 | 成年免费大片黄在线观看岛国 | 国产麻豆91网在线看 | 秋霞影院福利电影 | 野花韩国在线观看 | 超级碰碰青草久热国产 | 黄色三级三级免费看 | 久久精品热在线观看30 | 国产中文视频 | 乡土女性网动态图解 | 果冻传媒视频在线播放 | 香蕉eeww99国产精品 | 国产精亚洲视频综合区 | 久久频这里精品99香蕉久网址 | 91极品蜜桃臀在线播放 | 欧美高清videos 360p | 在线亚洲视频无码天堂 | 日本不卡不码高清免费 | 伊人综合在线22 | 最近中文字幕完整版高清 | 国产极品美女视频福利 | 菠萝菠萝蜜视频在线看1 | 亚洲国产成人一区二区在线 | 一级毛片在线免费视频 | 国产亚洲日韩在线播放不卡 | 日本高清不卡一区久久精品 | 伊人综合在线影院 | 暖暖 日本 视频 在线观看免费 | www国产av偷拍在线播放 | 亚洲熟少妇在线播放999 | japansemature护士 JAPANRCEP老熟妇乱子伦视频 | 爱情岛aqdlttv |

    電子發燒友

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

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