日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

union float_data

{

float f_data;

uint8_t byte[4];

};

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

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

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

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

union float_data rx_float_data, tx_float_data;

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

// 公眾號:嵌入式大雜燴

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類型對應(yīng)的16進制數(shù)據(jù)存于rx_float_data.byte中,并打印輸出rx_float_data.byte的各個字節(jié),此時rx_float_data.f_data就是我們接收的浮點數(shù)據(jù),接收到的數(shù)據(jù)加上1.0后賦予tx_float_data.f_data再通過UART3把tx_float_data.byte發(fā)送出去。

運行結(jié)果:

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

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

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

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

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

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

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

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

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

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

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

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

文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    8

    文章

    7349

    瀏覽量

    95057
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11195

    瀏覽量

    374754
  • float
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    8022

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    何在 STM32Cube CMake 工程添加源文件

    STM32CubeMX 能夠很方便的導(dǎo)出 CMake 工程。例如,如下圖所示在 STM32CubeMX的 ToolChain/IDE 中選擇 Cmake。CMake 工程可以很容易被
    發(fā)表于 04-15 16:07 ?0次下載

    LAT1574_如何在 STM32Cube CMake 工程添加源文件

    STM32CubeMX 能夠很方便的導(dǎo)出 CMake 工程。例如,如下圖所示在 STM32CubeMX的 ToolChain/IDE 中選擇 CmakeCMake 工程可以很容易被
    發(fā)表于 03-11 10:46 ?0次下載

    嵌入式的浮點型數(shù)據(jù)轉(zhuǎn)換為字節(jié)類型的三種方法

    的時候一般都是以省內(nèi)存,加快運算速度優(yōu)先。所以在選擇使用浮點型時float就可以滿足大部分需求,當(dāng)需要高精度的時候必須使用double進行運算。 浮點型數(shù)據(jù)在嵌入式的使用 在嵌入式數(shù)據(jù)
    發(fā)表于 01-07 06:28

    何在VS code配置Zephyr集成開發(fā)環(huán)境

    上一篇文章介紹了如何在VS code中使用瑞薩官方插件為RA芯片創(chuàng)建項目與項目調(diào)試,相信大家對RA在VS code的開發(fā)有了基礎(chǔ)的了解。
    的頭像 發(fā)表于 11-05 14:46 ?1818次閱讀
    如<b class='flag-5'>何在</b>VS code<b class='flag-5'>中</b>配置Zephyr集成開發(fā)環(huán)境

    GD32的串口DMA收發(fā)數(shù)據(jù)失敗怎么解決?

    我在使用RTT的GD32F303的BSP時,配置使用串口DMA收發(fā)(rt_device_open),發(fā)現(xiàn)錯誤,最終無法收發(fā)數(shù)據(jù),對比了STM32的BSP發(fā)現(xiàn)在drv_usart.c
    發(fā)表于 09-17 06:04

    何在 MCU/MUP 上安全地存儲機密數(shù)據(jù)

    何在 MCU/MUP 上安全地存儲機密數(shù)據(jù)
    發(fā)表于 09-08 06:44

    何在 buildroot 的 rootfs 顯示當(dāng)前目錄?

    何在 buildroot 的 rootfs 顯示當(dāng)前目錄?
    發(fā)表于 09-03 07:02

    何在 Keil rvmdk 開發(fā)環(huán)境啟用可配置的數(shù)據(jù)閃存并設(shè)置大小?

    何在 Keil rvmdk 開發(fā)環(huán)境啟用可配置的數(shù)據(jù)閃存并設(shè)置大小?
    發(fā)表于 08-26 08:18

    何在 IAR Embedded Workbench for ARM 開發(fā)環(huán)境啟用可配置數(shù)據(jù)閃存并設(shè)置大?。?/a>

    何在 IAR Embedded Workbench for ARM 開發(fā)環(huán)境啟用可配置數(shù)據(jù)閃存并設(shè)置大小?
    發(fā)表于 08-26 07:49

    何在 Keil C51 對 SPROM 進行編程?

    何在 Keil C51 對 SPROM 進行編程?
    發(fā)表于 08-25 07:53

    請問如何在 Keil rvmdk 開發(fā)環(huán)境啟用可配置的數(shù)據(jù)閃存并設(shè)置大???

    何在 Keil rvmdk 開發(fā)環(huán)境啟用可配置的數(shù)據(jù)閃存并設(shè)置大?。?/div>
    發(fā)表于 08-20 06:46

    請問如何在 IAR Embedded Workbench for ARM 開發(fā)環(huán)境啟用可配置數(shù)據(jù)閃存并設(shè)置大?。?/a>

    何在 IAR Embedded Workbench for ARM 開發(fā)環(huán)境啟用可配置數(shù)據(jù)閃存并設(shè)置大???
    發(fā)表于 08-20 06:23

    何在下載程序時保護flash的用戶數(shù)據(jù)不被覆蓋?

    使用stm32cubeide或stm32cubeprogrammer燒寫程序,stlink下載器,芯片stm32h743,芯片內(nèi)部flash的0x08100000地址寫有用戶
    發(fā)表于 08-14 06:38

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

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

    在ccg3pa何在發(fā)送goodcrc之前了解已收到的數(shù)據(jù)包?

    在 CCG3PA ,考慮到源端正在向匯端發(fā)送Source_Capability或其他信息,此時匯端如何在從匯端發(fā)送GoodCRC之前知道匯端收到了哪些信息? 無論我們收到什么消息,天氣都會開始評估回調(diào)函數(shù)是在GoodCRC 之后還是之前調(diào)用的?
    發(fā)表于 05-21 08:12
    黑河市| 梅州市| 连江县| 茂名市| 桦甸市| 望江县| 广汉市| 普兰县| 襄樊市| 辽阳市| 从化市| 肥西县| 新沂市| 隆昌县| 东乌| 孙吴县| 武宁县| 昭苏县| 黎城县| 图们市| 南澳县| 防城港市| 辉南县| 于都县| 双柏县| 长宁县| 揭东县| 玉树县| 普定县| 普格县| 桂林市| 桓台县| 北宁市| 乌鲁木齐市| 迁安市| 武强县| 枝江市| 荔波县| 东乌珠穆沁旗| 滦平县| 四平市|