vb发送浮点数到单片机的处理

vb发送一个浮点数到单片机中,例如0.1,在vb中将其转换成四个十六进制数再发送(即为0xcd 0xcc 0xcc 0x3d),用串口调试助手接收正常。在单片机中,给定一个四个十六进制的数组后通过相关语句也能成功转换成浮点数。我想知道从vb中发来的是连续的四个十六进制数,在单片机中应该怎样处理,将其放入数组中?按照串口调试助手的显示,VB端发来的数据是cdcccc3d(十进制0.1),我想在单片机把这串数据存放到有四个值的数组中,我的想法:if(UCSR0A & (1<<RXC0))⼀⼀串行通信数据接收函数,AVR单片机{ data=uart_receive0(); p1=(data&0xFF000000)>>24;p2=(data&0X00FF0000)>>16; p3=(data&0X0000FF00)>>8;p4=(data&0X000000FF);⼀⼀p1~4是四个十六进制数 hexbyte[0]=p1;hexbyte[1]=p2;hexbyte[2]=p3;hexbyte[3]=p4;⼀⼀hexbyte是数组}
2026年09月23日 22:08
有3个网友回答
网友(1):

最简单的做法就是申明一个联合体,这个例如:
union
{
float Data;
char buf[4];
}

这个不就两全其美了?

网友(2):

需要帮你做吗

网友(3):

你是要将处理数组中的数,还是怎样?