我现在的串口通讯程序,能够接收,传送数据,但是就是转换出错!
接收到的数据可以是字符串,也可以是数组,
但是根据通讯协议4个字节转换为float数据,就是不能转换啊!
grpadd:=copy(viewstr,2*ipos+1,8);//接收的数据转换为字符后再截取
有什么高招吗?

解决方案 »

  1.   

    我现在不知道是通讯协议错误还是怎么回事,
    协议上说4个字节表示***,接下来4个字节表示***
    但是我所取的是字符串啊,例如:3A4D5E6f能够转换为协议上所说的数据吗?不可能!
      

  2.   

    但是我读了vc的代码,在VC中
    memcpy(&dwCount, byRdBuf+iCmdStartPos, 4);
    memcpy(&fSpd, byRdBuf+iCmdStartPos+4, 4);
    memcpy(&fLen, byRdBuf+iCmdStartPos+8, 4);
    memcpy(&fDistance, byRdBuf+iCmdStartPos+12, 4);
    memcpy(&fPossess, byRdBuf+iCmdStartPos+16, 4);
    就用了memcpy可以得到你所要的数据!