串口通信如何发送浮点型数据angleX angleY
2个回答
推荐于2017-10-13
展开全部
思路:将多字节浮点数据分解成单字节逐个发送,接收后组合还原;
可以使用共用体
union
{//假设浮点和长整形均为4字节
float angleX;
unsigned long bs;
}data;
data.angleX = 123.456;
发送时发4字节
TX = (uchar)bs; //低8位
TX = (uchar)(bs>>8);
TX = (uchar)(bs>>16);
TX = (uchar)(bs>>24);//高8位
接收端也定义同样的共用体,接收4字节
union
{
float angleY;
unsigned long bs_Rx;
}data_Rx;
bs_Rx = RX ; //低8位
bs_Rx |= RX <<8;
bs_Rx |= RX <<16;
bs_Rx |= RX<<24;//高8位
最后angleY的值是等于angleX的;
可以使用共用体
union
{//假设浮点和长整形均为4字节
float angleX;
unsigned long bs;
}data;
data.angleX = 123.456;
发送时发4字节
TX = (uchar)bs; //低8位
TX = (uchar)(bs>>8);
TX = (uchar)(bs>>16);
TX = (uchar)(bs>>24);//高8位
接收端也定义同样的共用体,接收4字节
union
{
float angleY;
unsigned long bs_Rx;
}data_Rx;
bs_Rx = RX ; //低8位
bs_Rx |= RX <<8;
bs_Rx |= RX <<16;
bs_Rx |= RX<<24;//高8位
最后angleY的值是等于angleX的;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询