No.63198 作者:rankfyang 邮件:rankfyang_1@163.com ID:136042 登陆:1次 文章数:1篇 最后登陆IP: 最后登陆:2009/9/1 17:25:39 注册:2009/9/1 17:25:39 财富:100 发帖时间:2009/9/1 17:27:25 发贴者IP:124.16.136.199 标题:rankfyang:请教一个AVR串口接收浮点数的问题,望高手指教![求助] 摘要:No.63198请教一个AVR串口接收浮点数的问题,望高手指教![求助] 请教高手帮忙解答一下这个问题: (小弟先行谢过各位热心的朋友了!) 小弟使用中断方式从Atmega128的串口1读取了包含13个字节的数据,其中部分数据是浮点数,在接收的时候浮点数是作为四个字节的字符数组保存的。比如: 从端口接收到的四个构成一个完整浮点数的字符分别是: 0xFC, 0x34,0xCD, 0xB1. 现在我希望将这四个字符还原成正确的浮点数,应该如何处理,望各位高手指点迷津。 (原来接收数据都是以字节为单位接收的,是否有更好的方法处理这个问题呢,如何处理呢,望朋友不吝赐教^_^) 注: [code=C/C++] struct send_data{ unsigned char flag; //数据头标记,默认为0x55 unsigned char len; //数据长度 unsigned char gain; //AD的当前增益 float vol; //当前AD所采到的值 float offset; //当前位置值 unsigned int crc; //CRC校验数据 }; typedef struct send_data AD_MCU; AD_MCU *getADdata(unsigned char *string) { unsigned char i = 0; unsigned char j = 0; AD_MCU ADsentdata; unsigned char flagTemp; unsigned char lengthTemp; unsigned char floatArray[4]; float floatTemp; float pressureTemp = 0; float sinkTemp = 0; unsigned int crcTemp; ADsentdata.flag = string[i++]; ADsentdata.len = string[i+ ......
>>返回讨论的主题
|