导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[rankfyang]请教一个AVR串口接收浮点数的问题,望高



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+ ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:78531毫秒 查询6次