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

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

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

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

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

FPGA之家 ? 來(lái)源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2021-04-02 17:03 ? 次閱讀

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

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

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

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

我們創(chuàng)建一個(gè)用于管理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)建兩個(gè)共用體變量,用于發(fā)送與接收:

union float_data rx_float_data, tx_float_data;

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

// 公眾號(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類型對(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再通過UART3把tx_float_data.byte發(fā)送出去。

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

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

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

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

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

66a6fd8e-92eb-11eb-8b86-12bb97331649.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é)果可以看到:

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

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

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

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

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

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

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

責(zé)任編輯:haq

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

    關(guān)注

    8

    文章

    7108

    瀏覽量

    89302
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10915

    瀏覽量

    356787
  • float
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7785

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問TLV320AIC3106怎么轉(zhuǎn)換32位float數(shù)據(jù)

    TLV320AIC3106怎么轉(zhuǎn)換32位float數(shù)據(jù)
    發(fā)表于 11-05 08:07

    何在Altium Designer快速定位器件

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

    何在STM32上運(yùn)行AI應(yīng)用

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

    請(qǐng)問DTU如何在低功耗下正常收發(fā)數(shù)據(jù)

    DTU如何在低功耗下正常收發(fā)數(shù)據(jù)
    發(fā)表于 07-25 08:04

    何在SQL創(chuàng)建觸發(fā)器

    在SQL,觸發(fā)器(Trigger)是一種特殊類型的存儲(chǔ)過程,它自動(dòng)執(zhí)行或激活響應(yīng)表上的數(shù)據(jù)修改事件(如INSERT、UPDATE、DELETE等)。觸發(fā)器可以用于維護(hù)數(shù)據(jù)庫(kù)的完整性、自動(dòng)化復(fù)雜
    的頭像 發(fā)表于 07-18 16:01 ?2049次閱讀

    STM32串口1同時(shí)收發(fā)數(shù)據(jù)卡在回調(diào)函數(shù)怎么解決?

    只能正常收發(fā)幾次,卡住后進(jìn)入不了user_main_program 同時(shí)使用了串口2連接esp8266進(jìn)行數(shù)據(jù)收發(fā)
    發(fā)表于 05-29 06:34

    何在STM32F439 DMA流中斷中區(qū)分是哪個(gè)通道產(chǎn)生的中斷?

    STM32F439有兩個(gè)DMA控制器DMA1和DMA2,每個(gè)控制器有8個(gè)流,每個(gè)流有8個(gè)通道,我做的是采用串口1DMA中斷接收數(shù)據(jù),DMA2的流2 通道4對(duì)應(yīng)USART1_RX,STM32
    發(fā)表于 05-17 08:20

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

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

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

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

    STM32F407官方LWIP例程,怎樣修改把需要發(fā)送的數(shù)據(jù)直接由應(yīng)用層映射到數(shù)據(jù)鏈路層?

    STM32F407官方LWIP例程,怎樣修改把需要發(fā)送的數(shù)據(jù)直接由應(yīng)用層映射到數(shù)據(jù)鏈路層,但又不會(huì)影響到LWIP堆棧的接收發(fā)送。
    發(fā)表于 04-29 06:21

    STM32F103VC使用simulation和虛擬串口進(jìn)行串口數(shù)據(jù)收發(fā)時(shí),進(jìn)不了IDLE中斷的原因?

    單片機(jī):STM32F103VC,keil版本:5.18; 在使用simulation和虛擬串口進(jìn)行串口數(shù)據(jù)收發(fā)時(shí),數(shù)據(jù)能夠正常發(fā)送,但是接收數(shù)據(jù)
    發(fā)表于 04-26 07:09

    stm32cubeIDE移植的UCOSIII,定義float變量后進(jìn)入硬件錯(cuò)誤怎么解決?

    如題:stm32cubeIDE移植的UCOSIII,STemwin,用的stm32407芯片,定義float變量后進(jìn)入硬件錯(cuò)誤 之前是Keil5移植的時(shí)候也遇到了這個(gè)問題,然后是在啟動(dòng)文件中加了一段代碼解決了。 這次因?yàn)閱?dòng)文件
    發(fā)表于 04-12 06:09

    STM32WLE5JC SPI數(shù)據(jù)長(zhǎng)度設(shè)置為8位,但接收數(shù)據(jù)緩存卻是16位,為什么?

    STM32WLE5JC單片機(jī)SPI數(shù)據(jù)長(zhǎng)度設(shè)置了8位,并且相應(yīng)的接收FIFO也設(shè)成了8位,但最后收發(fā)數(shù)據(jù)是卻是16位
    發(fā)表于 04-07 07:32

    STM32G491使用串口DMA收發(fā)數(shù)據(jù),一直進(jìn)中斷卡死其他任務(wù)是為什么?

    STM32G491使用串口DMA收發(fā)數(shù)據(jù),一直進(jìn)中斷卡死其他任務(wù),具體原因是出現(xiàn)在哪里?
    發(fā)表于 03-18 07:49

    何在stm32cubemx精確查詢?

    stm32cubemxfinder功能的確很方便,但我遇到一個(gè)問題 現(xiàn)在片子上pin復(fù)用功能越來(lái)越多,越來(lái)越方便 我同時(shí)需要多個(gè)接口,如,1個(gè)can,2個(gè)spi,1個(gè)csi...... 選擇時(shí),會(huì)出現(xiàn)數(shù)量上滿足了,但不少pin是復(fù)用,不能共存。 請(qǐng)教如
    發(fā)表于 03-12 06:11
    主站蜘蛛池模板: 欧美一区二区三区激情啪啪| 免费永久欧美性色xo影院| 奇米影视7777| 国产成人精品三级| 国语自产拍在线观看7m| 国产青草| 久久综合九色综合欧洲| 欧美a在线播放| 婷婷天堂| 免费大片黄在线观看| 久久中出| 午夜性爽快| 黄网站在线观看视频| 一二三区电影| 四虎影院美女| 欧美视频a| 色婷丁香| 欧美性狂猛bbbbbxxxxx| 精品伊人久久大线蕉色首页| 欧美日韩高清一本大道免费| 色女人在线视频| 你懂的网址免费国产| 国产色拍| 国产精品久久精品牛牛影视| 激情五月播播| 黄色软件合集| www.黄视频| 成人亚洲精品| 国产精品久久久亚洲| 午夜激情福利网| 午夜神马嘿嘿| 天天色天天射天天操| 天天干天天日天天射天天操毛片| 久久精品国产亚洲aa| 中文字幕一区二区三区视频在线| 91x视频| 欧美性色xo影院在线观看| 日本aaaaa| 五月婷婷视频在线| 四虎精品免费国产成人| 毛片网站网址|