一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒ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之家 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 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);

}

代碼很簡單,UART3接收到串口助手發(fā)送的float類型對應(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對應(yīng)的十六進(jìn)制數(shù)據(jù)是什么呢?

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

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

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

1.28對應(yīng)的十六進(jìn)制為:3FA3D70A。因?yàn)?a href="http://www.www27dydycom.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對應(yīng)4011EB85:

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

這里我們使用串口助手來模擬一個(gè)設(shè)備,所以需要查一下我們要發(fā)送的float數(shù)據(jù)對應(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)載請注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    8

    文章

    7256

    瀏覽量

    91860
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364896
  • float
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7899

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    STM32F103x8 STM32F103xB單片機(jī)數(shù)據(jù)手冊

    STM32F103x8STM32F103xB單片機(jī)數(shù)據(jù)手冊
    發(fā)表于 04-14 14:55 ?2次下載

    何在Simulink啟用ADC校準(zhǔn)?

    何在 Simulink 啟用 ADC 校準(zhǔn)? V4.2.0 產(chǎn)品發(fā)布報(bào)告指出,它在塊可用。但我在 ADC 配置塊找不到任何選項(xiàng)。
    發(fā)表于 03-31 07:50

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

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

    IO-Link收發(fā)器怎么數(shù)據(jù)讀取

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

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

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

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

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

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

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

    何在反激式轉(zhuǎn)換器緩沖FET關(guān)斷電壓

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

    何在Altium Designer快速定位器件

    想知道如何在Altium Designer快速定位器件嘛?
    的頭像 發(fā)表于 10-12 09:28 ?1.4w次閱讀
    如<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 ?3360次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>STM32</b>上運(yùn)行AI應(yīng)用

    何在反激式拓?fù)?b class='flag-5'>中實(shí)現(xiàn)軟啟動(dòng)

    電子發(fā)燒友網(wǎng)站提供《如何在反激式拓?fù)?b class='flag-5'>中實(shí)現(xiàn)軟啟動(dòng).pdf》資料免費(fèi)下載
    發(fā)表于 09-04 11:09 ?0次下載
    如<b class='flag-5'>何在</b>反激式拓?fù)?b class='flag-5'>中</b>實(shí)現(xiàn)軟啟動(dòng)

    何在FPGA實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器

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

    請問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ù)庫的完整性、自動(dòng)化復(fù)雜
    的頭像 發(fā)表于 07-18 16:01 ?3458次閱讀