jiangliq_2000
驱动牛犊
驱动牛犊
  • 注册日期2003-07-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1504回复:3

在D12中,如何从单片机中读取float数据

楼主#
更多 发布于:2004-06-18 10:43
各位大虾
 我在做D12的数据采集,驱动就暂时用了周立功提供的驱动,现在碰到的一个问题是:我要从单片机里读取的数据是float型,但是EsayD12驱动库函数(周立功提供)的只是unsigned char型的,我本来是想在单片机里把float 转换成unsigned char读到PC里后再把unsigned char转换成float,不知道这样做对不对??但我实验后发现结果不对,是不是因为单片机里的存储结构和PC里的存储结构不一致呢!!
  请问有没有提供直接读取float类型的驱动库函数呢??
haoyujie
驱动牛犊
驱动牛犊
  • 注册日期2003-01-02
  • 最后登录2011-02-24
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-20 19:38
我不清楚,是不是因为字节序的问题?如果实在不行,就改成整数或都字符串来传
机器猫
dongdong_2008
驱动牛犊
驱动牛犊
  • 注册日期2004-06-07
  • 最后登录2009-08-05
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望12点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-06 16:39
你做的数据采集速度能达到多少?据说easyd12.dll的
速度比较慢,只有10kbyte/s左右。
bobbysun2000
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-06 17:51
你可以模仿A/D转换的方法,把float先变成unsigned char,在到上位机把它们转换回来。
比如你的float型的最大值是5,你就把5定为FF,然后根据下式:
U=value*0xff/5;(value是待转换的float值,U是转换后的unsigned char),但这样要考虑精度丢失的问题,你两方面衡量一下
游客

返回顶部