yxcon 发表于 2008-8-24 16:50:32

下位机程序发送数据?

个对很多人来说很简单的问题,在串口通信中,下位机怎么向上位机发送小数呢?他一般是字节方式或字符串发送的!

yxcon 发表于 2008-8-24 18:14:06

高手???

yxcon 发表于 2008-8-24 18:16:09

help???

tdh03z 发表于 2008-8-24 18:17:19

以ASCII码发送也行,以十六进制发送也行,只要上位机根据对应格式解读出正确数据即可

lszcq 发表于 2008-8-24 18:34:48

以十六进制发送:介绍个方法、比如要发送10.1(小数后精确一位)可以先放大十倍就等于101(101(十进制)==0x65(十六进制),你可以发送0x65然后上位机再提取整数和小数部分(101/10=10(整数部分提取) 101%10=1(小数部分提取)。这里只介绍这中方法当然还有别的方法,比如相对值和满度值等等,去网上看看

yxcon 发表于 2008-8-24 18:38:31

上位机好像直接使用小数的啊,我是不是可以一位一位地发?

yxcon 发表于 2008-8-24 18:39:56

四楼的可不可以来段AVR的程序啊?

yxcon 发表于 2008-8-24 18:44:17

3楼的同乡啊,你有个例子吗?

armfans 发表于 2008-8-24 19:39:26

不知你下位机是如何定义小数的,如果是浮点数,直接发送浮点数的4个字节,上位机和下位机保持大小端一致,4楼的方法不错,能节省一半的空间和速率。

yxcon 发表于 2008-8-25 14:34:44

恩,是把float按四个字节发送吗?我感觉转换函数有点问题
void FloatToChar(float Fvalue, unsigned char *pch)
{
unsigned char *p,i;
p=(unsigned char*)&Fvalue;
for(i=0;i<4;i++)
{
   *pch=*p;
      p++;
        pch++;
}
}
页: [1]
查看完整版本: 下位机程序发送数据?