xp 做网站服务器吗安徽建站贵吗
2026/6/28 22:07:50 网站建设 项目流程
xp 做网站服务器吗,安徽建站贵吗,企业网站的制作用到的技术,seo网站排名优化公司哪家好背景通过串口传输float类型数据#xff0c;接收后将接收到的数组通过float_t val*(float_t*)(u_buf5) 进行强制转换为float类型#xff0c;概率性出错#xff0c;进入了HardFault问题原因float为4字节对齐#xff0c;uint8_t是1字节对齐#xff0c;进行转换的数组位置不一…背景通过串口传输float类型数据接收后将接收到的数组通过float_tval*(float_t*)(u_buf5)进行强制转换为float类型概率性出错进入了HardFault问题原因float为4字节对齐uint8_t是1字节对齐进行转换的数组位置不一定是4字节对齐的起始所以出现HardFault。当然不同系统中传输过去的数据也要考虑大小端问题。STM32常见为 Little Endian下低地址存放低字节解决方法1.利用memcpy将内容复制到float类型变量#include string.h uint8_t u_buf22[] {0xAA, 0x19, 0x04, 0x9E, 0x3F}; float f; memcpy(f, u_buf22 1, sizeof(f)); // 安全地读取 4 字节到对齐的 float 变量 printf(value %f\r\n, f);2.利用uint32_t 组装再转换uint32_t tmp (uint32_t)u_buf22[1] | ((uint32_t)u_buf22[2] 8) | ((uint32_t)u_buf22[3] 16) | ((uint32_t)u_buf22[4] 24); float f; memcpy(f, tmp, sizeof(f)); // 将位样复制到 float3.利用unionunion { uint32_t u; float f; } conv; conv.u (uint32_t)u_buf22[1] | ((uint32_t)u_buf22[2] 8) | ... ; printf(%f\n, conv.f);

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询