hur.cn - 华软网

 热门搜索

VC++串口通信程序 数据接收处理的问题 API函数编写

  作者:未知    来源:网络    更新时间:2010/6/30

我的问题是
1.串口接收到这样一帧数据以后,如何判断地址和萃取数据。又如何组合这几组数据,把他重新萃取成一个32位的二进制数
2.然后重新转化成一个浮点型的十进制的小数形式

参考以下协议(我自己定的)
定义DSP 为下位机,计算机为上位机。
现预将下位机中的浮点型数据发送到上位机。 用API函数编程
由于串口按位传送数据,所以在数据传送之前,把下位机中的浮点型数据转换为二进制数据发送。一个浮点型数据占4个字节即32bit。
现在我们要将这32bit数据通过串口传送到上位机,并且在上位机显示界面的指定位置以二进制小数形式显示出来。显示界面共有六个文本框用来接收数据。  
  定义Ua地址为01,Ub 02 ,Uc 03 ;
  Ia 04, Ib 05 Ic 06。
定义每个包中含7位有效数据,5*7>32 需要5个数据包,加上一个表示地址的数据包,共需要6个数据包进行数据传送。
这里的地址对应显示界面的6个文本框地址。用不到的高位补0.
如传送数据到Ic时第一个字节为 0 1 0000 110 1
(起始位) (标志位) (高位补0) (地址) (终止位)
地址包(标志位为1) 数据包(标志位为0) 数据包(标志位为0) 数据包(标志位为0) 数据包(标志位为0) 数据包(标志位为0)

协议中包的格式如下
起始位 标志位0 D0 D1 D2 D3 D4 D5 D6 停止位
 



标志位为0,表示该字节所传输为数据包。其后的7位均为数据内容。
起始位 标志位1 D0 D1 D2 D3 D4 D5 D6
标志位为1,表示该字节为一个地址包。其后的7位为地址。

我QQ 396318521 。一直在线。 还请达人指点!我这里有个用字符串接收的串口通信程序,但是我不会修改。
可以加我QQ,我把程序发给你,研究一下。
---华软 网友回答---
你问的问题全是跟实际协议相关,你想怎么生成数据都可以啊,想让人给你解协议?
---华软网友回复---
引用 1 楼 citroen_kimi 的回复:
你问的问题全是跟实际协议相关,你想怎么生成数据都可以啊,想让人给你解协议?


我想不通的是  数据接收到之后如何从缓存中读取 又是如何萃取拼接
语句是什么
---华软网友回复---
1.首先定义帧格式
2.按照帧格式打包数据,发送
3.接收数据,按照帧格式解析数据
---华软网友回复---
发送时,  浮点数---〉整数   比如100.23 X 100 = 10023
接收时,  整数---〉浮点数   比如10023 / 100 = 100.23
---华软网友回复---
引用 4 楼 tree_546 的回复:
发送时, 浮点数---〉整数 比如100.23 X 100 = 10023
接收时, 整数---〉浮点数 比如10023 / 100 = 100.23


楼主都说过了,浮点数占四字节,应该是IEEE754。
---华软网友回复---
说的不错,很有见解      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。