历史上的今天
返回首页

历史上的今天

今天是:2024年10月08日(星期二)

正在发生

2019年10月08日 | 串口通信中的float型数据的处理

2019-10-08 来源:eefocus

1、将串口接收的数据转换为float型数据


float CXXDlg::FourChar2Float(char* szBuf,              //HEX ASC数据

                             bool bBigEndian = false)  //指示是否是Big Endian结构

{

    typedef union  

    {

        unsigned char  uc[4];   

        float          f;

    }Float4Byte;

 

 

    Float4Byte f4b;

 

 

    if(bBigEndian) //大端模式 调整数据顺序(因为PC机是小端模式)

    {

        f4b.uc[0] = (unsigned char)szBuf[3];

        f4b.uc[1] = (unsigned char)szBuf[2];

        f4b.uc[2] = (unsigned char)szBuf[1];

        f4b.uc[3] = (unsigned char)szBuf[0];

    }

    else

    {

        f4b.uc[0] = (unsigned char)szBuf[0];

        f4b.uc[1] = (unsigned char)szBuf[1];

        f4b.uc[2] = (unsigned char)szBuf[2];

        f4b.uc[3] = (unsigned char)szBuf[3];

    }


 

    return f4b.f; //返回浮点数数据

}



2、将float型数据转换成CString显示,精确到小数点nDigit位

void CXXDlg::Float2CString(float fIn, CString& csOut, int nDigit)

{

    char szTmp[32] = {0};

 

 

    //fIn四舍五入,保留小数点后nDigit位

    float fTimes = pow((float)10, nDigit);

    int nTmp = (int)(fIn*fTimes + 0.5);

    fIn = nTmp/fTimes;

 

 

    sprintf_s(szTmp, sizeof(szTmp), "%f", fIn);//将fIn转为字符串

    CString csTmp = szTmp;

    int nPos = 0;

    nPos = csTmp.Find(".");

 

 

    csOut = csTmp.Left(nPos);//小数点左边的部分

    csOut += csTmp.Mid(nPos, nDigit+1);//小数点后面nDigit位,包括小数点

}


注:变量f为float型,n为int类型,则能实现将f中的数值保留小数点后两位,第三位四舍五入运算的表达式是


n=f*100+0.5,f=n/100.0


推荐阅读

史海拾趣

Dialog公司的发展小趣事

到了1981年,Dialog公司从洛克希德导弹航空公司中独立出来,成为了一个子公司,并开始独立经营。在独立发展的初期,Dialog公司继续专注于通信技术的研发,并逐渐将业务范围拓展到了个人便携式应用、低功耗短程无线应用以及LED固态照明、显示和汽车应用等领域。

General Dynamics SATCOM Technologies公司的发展小趣事

Dialog公司一直注重产品的安全性和可靠性。为了确保其产品和解决方案能够满足客户对安全性的要求,Dialog公司积极寻求各种认证和合规性评估。例如,Dialog公司的DA16200 Wi-Fi SoC获得了PSA一级认证,这标志着Dialog公司在芯片层面保护设备方面取得了重要里程碑。PSA Certified认证机制由Arm及其四个全球领先的独立安全评估实验室合作伙伴共同创立,该认证机制以一种方法论的方式来开发安全功能的最佳实践。获得PSA一级认证使Dialog公司能够确保其客户和合作伙伴在从芯片到应用的各个开发阶段都能获得安全性保障。

Cambridge Electronic Industries Ltd公司的发展小趣事

随着公司实力的增强和产品线的丰富,CEI开始积极寻求市场拓展的机会。公司不仅在国内市场取得了显著的成绩,还开始拓展国际市场。CEI与国际电子巨头建立了紧密的合作关系,共同研发新产品,分享技术和市场资源。这些合作不仅提升了CEI的技术水平和市场竞争力,也为其带来了更广阔的发展空间。

格莱尔(GLE)公司的发展小趣事

深圳市格莱尔电子有限公司成立于2005年,初期专注于电感产品的研发与生产。在创始人及团队的共同努力下,公司迅速在行业内崭露头角。随着技术的不断积累和市场需求的扩大,格莱尔逐渐扩大生产规模,并于2012年在湖北投资建厂,自建两座工厂,厂房面积达2万平方米,员工人数增长至500人。这一系列的举措不仅提升了公司的生产能力,也为其后续的发展奠定了坚实的基础。

EUCHNER公司的发展小趣事

EUCHNER公司一直将产品创新视为其核心竞争力。公司不断投入研发资源,推出了一系列具有创新性的产品,如安全限位开关CES-CMFS系列、机械式安全开关MGB系列以及多光束安全栅ESPE系列等。这些产品在汽车制造、轨道交通、环保监测等领域得到了广泛应用,并赢得了客户的广泛赞誉。通过产品创新和市场拓展,EUCHNER公司的市场份额逐年提升。

Cavium Networks公司的发展小趣事

作为一家在电子行业具有影响力的公司,Cavium Networks 始终保持着持续创新的精神。公司不断投入研发资源,推出了一系列具有创新性和领先性的产品和技术。同时,Cavium Networks 也积极参与国际标准和行业规范的制定工作,为电子行业的健康发展贡献了自己的力量。正是这种不断创新和追求卓越的精神,使得 Cavium Networks 在电子行业中保持了领先地位,并引领着行业的未来发展。

以上五个故事虽然基于虚构,但它们都紧密围绕 Cavium Networks 在电子行业中的发展历程和关键事件展开,展示了公司在技术创新、市场拓展和合作发展等方面的努力和成就。这些故事旨在展现 Cavium Networks 的发展轨迹和行业影响力,同时也反映了电子行业的快速发展和变革。

问答坊 | AI 解惑

流程序开发指南(英)希望这个东西对大家有用。

这是一般讨论流设备程序开发的书籍,希望对兄弟姐妹们的工作有所帮助。…

查看全部问答>

数控电流源资料论文

本帖最后由 paulhyde 于 2014-9-15 09:05 编辑 如果感兴趣,就看看吧,大家互相帮助。word 文档 [ 本帖最后由 ceolach 于 2009-6-4 14:35 编辑 ]  …

查看全部问答>

菜鸟也谈各单片机的特点

在网上看到许多有关MCU的问题和评论 也许其中有很多是枪手写的 其实我没有真正的用过任何的MCU 说以有错的地方请高手指正 STC 最国产 频率打五折用 AVR 最老龄死 就他没样片 超级孤寒 PIC 卖广告最多 超常在教材上花心思 MSP430功耗最大 说 ...…

查看全部问答>

点到点通信毫米波应用

BridgeWave Communications是能够提供完整的点到点毫米波链路解决方案的公司之一,公司在全球部署有数千台60和80GHz的无线千兆比特设备。该公司的毫米波无线设备支持局域网(LAN)干线扩展、移动电话回传应用以及大容量互联网接入。他们提供的无线系 ...…

查看全部问答>

wince如何支持打印?

我编写了一个基于Windows ce的应用程序,其中要求能支持打印。要想实现,需要做哪些工作?请指教。 开发板使用的是ICOP的VDX6354,是支持打印的。 但是我将打印机插上(通过usb,并且是hp打印机)以后,系统没有自动显示新添加的打印机。 这是什 ...…

查看全部问答>

wince系统在线播放youtube的问题

我们在为客户开发一款机器,使用pxa270的cpu,客户要求可以在线播放youtube视频。 使用IE上Youtube的网站,总是自动转到youtube的mobile版,视频是3gp格式的,点击播放自动弹出mediaplay,但是提示连接不上服务器。如果上youtube的桌面版,则提示f ...…

查看全部问答>

如何实现类似1008的功能

各位,我现在想实现这样的功能: 1、从数据库中获取电话号码后(如:12345),通过拨号按钮直接拨到此电话上(12345)。 2、拨通后,接受的电话(12345)可以听到一段录音,然后按提示选择对应的功能健。比如按1同意,按2不同意,按3转人工。 3 ...…

查看全部问答>

wince 图形绘制问题

不知道wince 支持 DirectX么? 支持 gdi+么? 各位大虾:不知道wince上,你们是怎么绘制图形?…

查看全部问答>

LPC2142开发板如何运用串口ISP下载程序?

我想用flash magic下载提供的例程hex文件到板子中。我有个串口线&USB通讯电源线。串口线连接到COM1,然后将P0.14所在的JP2短接,电源部分JP7短接。不知为什么始终连接不成功。期间看到板子介绍说,可以全自动ISP下载,于是将JP2,JP1,JP3都短接(R ...…

查看全部问答>