中易网

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

答案:4  悬赏:50  
解决时间 2021-01-15 15:45
labview如何用串口向单片机发送浮点数
最佳答案
1、首先,要确定下用的是哪款单片机,是否支持浮点数;
  2、然后,用的什么协议与单片机通信;
  3、各种类型的数据(整形、浮点型)都是先用格式化的方式转行成了无符号整形,然后下发。读取就是先将读取的数据格式化成所定义的类型。这样可以保证16位或32位的每个位的值都不改变。
全部回答

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




用这个函数,在数学-》数值-》数据操作。
不过你得注意单片机接收的浮点数是什么格式的,是float还是double,labview默认的浮点数都是double占64bits。如果单片机的浮点数是32bits,你得把“数值”的表示法换成SGL才行。
还有就是大端小端问题,如果你单片机那边收的数完全不对,你可以考虑换一种对齐方式。
用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。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
四人用四兆的网线为什么很卡
做法,皮薄肉嫩的快手纯肉烧卖怎样做才好吃的
如何辨别外贸货与正品货?有什么差别?
节能灯36W,一小时多少度电
三菱fx3u64m在写入程序的时候显示范围设定出
一袋盐重5/3,2/3袋重多少千克
公安有什么不好?为什么转业进公安的战友都劝
海南海口到湖南湘乡坐火车多久?
辣木树能煲汤吗?它的功效是什么?辣
天行剑的游戏攻略
佳音语言艺术教育地址在哪,我要去那里办事
雪花山泉地址在什么地方,我要处理点事
一嗨租车(东七路)地址在哪,我要去那里办事
年薪三十万在全国属于什么水平?
百年廊(第二分店)怎么去啊,有事要去办理
推荐资讯
低保办理是按户口本成员办理吗?
怎样在word中移除MathType选项
赵惟依alianz1的id是什么聊天工具
为什么《九分达人》中会出现雅思考试真题,这
重庆南坪新月桌游吧地址在什么地方,想过去办
东弈教育地址好找么,我有些事要过去
dota top10 是用什么软件做的
链条传动有什么特点
冰箱铜管为什么要焊接而不用纳子接头活接
用买10个大水杯的钱,可以买15个小水杯,大水
.net 如何把数字大于10000 显示1万+ 20000 就
夏加儿美术教育(滨州邹平县)地址有知道的么?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?