基于FINS协议的串口通信怎么写一个小数到内存中
我已经写好了读写int类型数据的,现在要改成可以写float和double类型的数据,@00FA000000000010282000000000112.361*指令返回帧是@00FA1543*,求大神指点应该是什么样的格式写float和double类型的数据,指令帧的格式应该是什么样的呢 串口通信
[解决办法]
float和double类型的数据在内存中就是32位和64位的数据,所以传送的时候:
float vf = 34.45;
int vi = *((int*)&vf);
send(vi);
接收的时候:
int vi = recv();
float vf = *((*float)&vi);
[解决办法]
万能方法:处理不了的就不处理,直接把数字当字符串传输
[解决办法]
一般通讯数据层是不关心数据转换了,如果没有CPU大小端对齐问题,直接读内存地此,以CHAR方式写到串口,如果有CPU大小端对齐问题,那你最好转成字符串传,里面在转过来