labview如何用串口向单片机发送浮点数

如题,想通过上位机更改下位机的数据,但是不知道怎么样通过串口将浮点数发送给单片机。... 如题,想通过上位机更改下位机的数据,但是不知道怎么样通过串口将浮点数发送给
单片机。
展开
 我来答
eugene36
2013-11-21 · TA获得超过563个赞
知道小有建树答主
回答量:151
采纳率:100%
帮助的人:69.4万
展开全部

用这个函数,在数学-》数值-》数据操作。

不过你得注意单片机接收的浮点数是什么格式的,是float还是double,labview默认的浮点数都是double占64bits。如果单片机的浮点数是32bits,你得把“数值”的表示法换成SGL才行。

还有就是大端小端问题,如果你单片机那边收的数完全不对,你可以考虑换一种对齐方式。

匿名用户
推荐于2016-07-01
展开全部
  1、首先,要确定下用的是哪款单片机,是否支持浮点数;
  2、然后,用的什么协议与单片机通信;
  3、各种类型的数据(整形、浮点型)都是先用格式化的方式转行成了无符号整形,然后下发。读取就是先将读取的数据格式化成所定义的类型。这样可以保证16位或32位的每个位的值都不改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
banshouren4077
2013-11-21 · TA获得超过1997个赞
知道小有建树答主
回答量:818
采纳率:0%
帮助的人:1100万
展开全部

你在这里需要做的是数值到字符串的转换。

如图,下列三种方式任选其一即可。前两种相当于通过指针类型转换得到,方便快捷,但对新手来说不直观。后一种相当于sprintf函数格式化得到,看起来比较直观。


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jinfahua
推荐于2016-03-05 · TA获得超过590个赞
知道小有建树答主
回答量:285
采纳率:0%
帮助的人:231万
展开全部
用sprintf语句,格式为"%d",输出就是浮点数了,单片机收到的是一串数字,中间包括小数点,比如 135.24,在单片机里定义一个浮点变量,用一循环,前一位*10+后一位,遇到小数点后每一位*1/10。
还有一个方法,在上位机程序和下位机程序里各定义一个char型数组如A[2]和一个浮点变量M,A[2]在前,M在后,两个紧挨着。上位机要把M的值发给下位机,就把A[2],A[3],A[4],A[5]四个字节发过去就行了,下位机收到后出填入A[2],A[3],A[4],A[5],这样一个浮点数就发过来了。当然,这要采用二进制通信方式,不能用文本方式!
追问
第二个方法不能理解。。能解释一下嘛
追答
char型数组A[2]只占两个存储单元,浮点变量M占四个存储单元,数组A其实只有两个元素A[0]和A[1], 而A[2],A[3],A[4],A[5]实际上就是浮点变量M。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式