从串口读取二进制数据,格式已经告知,
比如说第五个字节到第八个字节(共四个字节)存放的是一个float变量,
请问怎么提取出来阿?
我试了几种方法都不对。:(另外,从串口读取数据,高位在前还是低位在前?
谢谢了!!
//bow
比如说第五个字节到第八个字节(共四个字节)存放的是一个float变量,
请问怎么提取出来阿?
我试了几种方法都不对。:(另外,从串口读取数据,高位在前还是低位在前?
谢谢了!!
//bow
解决方案 »
- 如何灰度?
- 用EVC或VC编一个 想IP设置的对话框??
- 急问大侠,picture control大小为什么与getclientrect得到的大小不一样?
- 无法调用GetAdaptersAddresses()
- mysql的用法
- CreateFile的hTemplateFile到底是干嘛的?
- word文档中繁简转换是怎么实现的?有没有人能帮我讲一讲?倾我所有,跪求帮忙!
- 兄弟们,帮忙!求一个算法:计算100000个字符串的尺寸(SIZE)。
- 为什么在定义ID的时候,会有几种情况?
- 请问各位大侠,如何将INT的数据转化为CString类的字符串?
- 我是VC新手,在Win32 Application中如何建立resource.h文件
- 怎样获得一个应用程序所需的各种库文件的信息,在线!
float *p = ( float * )buf;
printf( "%f", *p );
串口中的数据与网络上的字节序有近似,这和串口接什么设备有关呀
{
float a;
BYTE b[8];
};
CString str;
int i;
BYTE a[8]; //从串口读的一个字节
myunion test;
for(i=0; i<8; i++)
test.b[i]=a[i];
for(i=0; i<4; i++)
test.b[i]=tes.b[i+4];
for(i=0; i<4; i++)
test.b[i+4]=0x00;
str.Format("%f", test.a);
用联合,它是共享内存空间的。
发送:
char* p=(char*)floatA;
send(p);
接收:
char buffer[128];
recv(buffer)
float *p = ( float * )(buffer+5);
save(*p);
然后自己再转换数据格式。比较烦琐,但不复杂。
{
float a;
BYTE b[4];
};
CString str;
int i;
BYTE a[8]; //从串口读的8个字节
myunion test;
for(i=0; i<8; i++)
test.b[i]=a[i+4]; //取5-8四个字节
str.Format("%f", test.a);
这样应该对了吧!!!
我把他赋给一个CString变量,行么?