C语言浮点数的发送和接收
//发送float数据。共用体里的参数长度应该一致。否则内存无法对齐
//用于类型转换
union result2
{float lightnum;unsigned char data[4];
}Send_Float_Data;
/*
非常重要
Send_Float_Data 是联合体变量,类似结构体变量,不能放在 H文件下,如果放在H文件下就属于在H文件下定义变量,这样其他C文件包含这个H文件就会报变量多重定义的错误。
所以H文件只能声明变量,绝对不能定义变量。
解决办法 是:
typedef union
{float lightnum;unsigned char data[4];
}Send_Float_Data;
这样Send_Float_Data 就不是变量而是 联合体名字,这样H文件就不会重复定义变量了。
然后在对应的C文件 定义联合体 变量 Send_Float_Data datatype;
要想datatype在其他文件也可以使用,可以在刚才的H文件声明下
extern Send_Float_Data datatype;(这种情况适用于main.c 中 需要定义很多结构体变量,显得很乱,这种方法可以使代码规范)
一般情况下是 H文件中用typedef声明结构体、枚举、联合体。 然后哪个C文件 用在哪个C文件定义对应变量。
*/
#include <stdio.h>union result1
{float lightnum;unsigned char data[4];
}Read_Float_Data;float Read_data = 0;
float Send_data = 319.261993;void send_loopdata()
{ for(int i = 0;i<4; i++){USART_SendData(USART_CH, Send_Float_Data.data[i]);Ddl_Delay1ms(1);}
}int main(void)
{SystemClockConfig();ceventInit();ceventPost(EVENT_TIMER_STAGE1);ceventPost(EVENT_UART_STAGE2);SysTick_Init(1000u); //1mswhile(1){
#if 0/**接收浮点*/Read_Float_Data.data[0] = 0x89;Read_Float_Data.data[1] = 0xA1; Read_Float_Data.data[2] = 0x9F;Read_Float_Data.data[3] = 0x43; Read_data = Read_Float_Data.lightnum;printf("%f \n",Read_data);
#endif
#if 1/**发送浮点*/Send_Float_Data.lightnum = Send_data;send_loopdata();
#endifDdl_Delay1ms(2000);}
}
C语言浮点数的发送和接收相关推荐
- CANOE入门:CAPL语言实现诊断发送和接收
目录 什么是诊断 CAPL诊断发送 CAPL接收 完整示例 什么是诊断 诊断,就是通过问和听的方式,也即发送和接收信号的方式,发送一条指定ID的CAN报文,ECU接收到后回应另一条指定ID的报文来确认 ...
- 25. Python语言 Web 开发 之 Socket 编程 · 第一章 UDP发送与接收数据
UDP发送与接收数据 本章主题 关键词 前导: 计算机网络的发展及基础网络概念 两台电脑的通信 IP地址介绍及分类 IP地址与IP协议 Windows 和 Linux 查看网卡信息 IP地址分类 以太 ...
- 无线发射器c语言程序代码,单片机编码 无线模块发送与接收 程序
单片机编码 无线模块发送与接收 程序 模块型号,可在万能的某宝搜索[超再生无线模块] 接收距离:空旷200米[这是卖家说的,有待考验] 接收端在没有收到讯号,会生成间歇性尖状脉冲,data接LED负极 ...
- 单片机无线模块编码和解码c语言,单片机编码 无线模块发送与接收 程序
单片机编码 无线模块发送与接收 程序 模块型号,可在万能的某宝搜索[超再生无线模块] 接收距离:空旷200米[这是卖家说的,有待考验] 接收端在没有收到讯号,会生成间歇性尖状脉冲,data接LED负极 ...
- 微信公众平台--3.普通消息交互(发送与接收)
微信是一个聊天工具,实现消息交互是一个很基础且重要的功能,在公众号中,用户关注后,可以给公众号发消息,公众号可以通过将消息转发给客服接待或者是直接根据用户发送的消息回复用户.微信提供的文档其实挺清楚的 ...
- JavaMail发送和接收邮件
一.JavaMail概述: JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. 厂商所提供 ...
- Odoo与浪潮合资研发PS Cloud之在Odoo发送和接收电子邮件
本文档主要针对的是没有从开箱即用的解决方案中受益的odoo在前提下的用户,这些用户在odoo中发送和接收电子邮件,不像以前那样.Odoo在线 & Odoo.sh. 如果您的公司没有人用来管理电 ...
- Kvaser Leaf light HS v2 | 如何使用Excel发送和接收CAN报文数据
从1980年代,Kvaser就开始CAN产品的研发,在相关产品开发领域有近40多年的经验,对CAN和相关总线技术有着非常深入的研究.我们将分享一些有趣的发现和一些特定情况的技术处理,欢迎关注❤️广州智 ...
- C#实现发送和接收邮件的winform邮箱(保存至MySQL本地数据库)Mail Client
C#实现发送和接受邮件的winform邮箱 一.C#邮箱总体介绍 二.C#本地邮箱如何实现 1. 登入界面 2. 发送邮件 3. 接收邮件 Imap接收邮件 接收邮件并保存到MySQL数据库之中 与前 ...
最新文章
- SQL-54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary。
- unity 天空盒_使用Substance in Unity搭建Unity和SP的live link实时互通环境
- Qt 常量中有换行符 中文
- Java 中引用类型
- TCP/IP和UDP的区别
- stm32标准外设库和芯片资料下载地址
- Informix IDS 11体系操持(918测验)认证指南,第 4 部门: 机能调优(1)
- json在线解析工具大集合
- SLAM_局部束调整(local Bundle Adjustment, BA)步骤与代码示例
- 使用TortoiseSVN下载source force的源代码
- 3D点云目标检测综述
- iPhone 与 Mac 怎么同步?同步有什么用
- Markdown中表格中内容换行、左对齐等基本操作
- 大厂的安卓技术面试是酱紫的
- 软工网络15个人阅读作业1-评分发布
- 与蜂窝连接的无人机的空地干扰缓解
- web应用F12查看报错(前后端bug判断、2XX/3XX/4XX/5XX常见状态码解析)
- 思科下一代模拟器EVE-NG镜像导入
- 小爱同学上线win10商店
- Contour Features 边界特征