我正在编写一个运行在 MSP430 控制器上的 modbus 协议代码。响应缓冲区(全局)是一个 8 位数据数组,通过它对已处理请求的响应将在串行 UART 上发送。现在,我的问题是生成的响应包含不同数据类型的组合。即 uint8、uint32、浮点数。如何使用全局响应缓冲区发送此数据?
对于浮动,我尝试使用 memcpy,这似乎工作正常。有没有更好更有效的方法?因为帧大小很大(比如 20-30 字节)。这是我尝试做的演示
int main()
{ unsigned char buff[8]; //Global buffer
float temp[2]; //temp buffer to store response values
temp[0] = 0x00ef2212;
memcpy(buff, temp, 8);
printf("buff[0]= %u \n buff[1]= %u\n buff[2] = %u\n buff[3]= %u\n", buff[0],buff[1],buff
[2],buff[3]);
return 0;
}