最近在做项目,虚拟示波器打出浮点型数据曲线,无奈串口发送是单字节,所以经过试验得到以下办法,亲测好用。(有什么弊端还请大佬们及时指出,毕竟新司机上道经验不足)
原理什么的自己百度,直接上代码:
union U
{
char s[8];
double d;
}float_data;
void USART_sendfloat(=double f)
{
int i;
float_data.d=f;
for(i=0;i<8;i++)
{
USART_SendData(USART1,float_data.s[i]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
}
然后使用 USART_sendfloat(float f);就可以发送浮点型数据了。
如果是单片机之间互相通信,还要再转化回来。
原理什么的自己百度,直接上代码:
union U
{
char s[8];
double d;
}float_data;
void USART_sendfloat(=double f)
{
int i;
float_data.d=f;
for(i=0;i<8;i++)
{
USART_SendData(USART1,float_data.s[i]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
}
然后使用 USART_sendfloat(float f);就可以发送浮点型数据了。
如果是单片机之间互相通信,还要再转化回来。