keil软件下浮点型转换为字符串
把一个数组AIchnl[12]的值赋值给一个字符串(八个字符的中的二个pSFrame[6]和pSFrame[7])pSFrame[6]=AIchnl[12]>>8;pSF...
把一个数组AIchnl[12]的值赋值给一个字符串(八个字符的中的二个pSFrame[6]和pSFrame[7])
pSFrame[6] = AIchnl[12]>>8;
pSFrame[7] = (AIchnl[12]);
但数组是浮点型,字符串是字符串型,在KEIL软件下,编译错误,请高手指点下,如何把数组转化成字符串类型,赋值给字符串中的第六个字条和第七个字符。
在线等,有不明白的地方可以在线问。
那好吧,我说清楚一点,首先一个数组AIchnl[12],其中里边是12个浮点型的数,也就是含有小数点。我现在要把这12个浮点型的数通过串口用12帧字符串发送出去,当i=0时发送AIchnl[0],共发送12次,而AIchnl[0]要放到第6和第7位,也就是pSFrame[6]和pSFrame[7],但因为字符串类型不一样,直接赋值pSFrame[6] = AIchnl[12]>>8;pSFrame[7] = (AIchnl[12]);会提示类型不一样,所以要先AIchnl[12]里的娄转化成字符型,保留一位有效数字!这样说你明白了吗? 展开
pSFrame[6] = AIchnl[12]>>8;
pSFrame[7] = (AIchnl[12]);
但数组是浮点型,字符串是字符串型,在KEIL软件下,编译错误,请高手指点下,如何把数组转化成字符串类型,赋值给字符串中的第六个字条和第七个字符。
在线等,有不明白的地方可以在线问。
那好吧,我说清楚一点,首先一个数组AIchnl[12],其中里边是12个浮点型的数,也就是含有小数点。我现在要把这12个浮点型的数通过串口用12帧字符串发送出去,当i=0时发送AIchnl[0],共发送12次,而AIchnl[0]要放到第6和第7位,也就是pSFrame[6]和pSFrame[7],但因为字符串类型不一样,直接赋值pSFrame[6] = AIchnl[12]>>8;pSFrame[7] = (AIchnl[12]);会提示类型不一样,所以要先AIchnl[12]里的娄转化成字符型,保留一位有效数字!这样说你明白了吗? 展开
3个回答
展开全部
串口通信,是肯定不能直接用浮点型数据赋值通信的。如果照你要求保留一位有效数字,个人建议用以下方式通信:
1、将待发送数据乘10再强制转换为整数,如5.3x10=53,然后转换为字符串pSFrame[6]="5" ; pSFrame[7]="3" ; 就可以发送了。当然接收方接收到数据后需要除以10,才能得到正确数据。
2、按以上相同理论,其实只要你与接收方协定好通信协议,有正确而统一的编码、解码方式就可以,你这边不一定需要按具体数值发送。
3、浮点型数据的二进制表示方法:http://blog.csdn.net/chenyujing1234/article/details/7683635
按这个二进制代码通信也可以,只是同样,接收端也要知道如何解码。
1、将待发送数据乘10再强制转换为整数,如5.3x10=53,然后转换为字符串pSFrame[6]="5" ; pSFrame[7]="3" ; 就可以发送了。当然接收方接收到数据后需要除以10,才能得到正确数据。
2、按以上相同理论,其实只要你与接收方协定好通信协议,有正确而统一的编码、解码方式就可以,你这边不一定需要按具体数值发送。
3、浮点型数据的二进制表示方法:http://blog.csdn.net/chenyujing1234/article/details/7683635
按这个二进制代码通信也可以,只是同样,接收端也要知道如何解码。
展开全部
不需要转换啊,串口在内存中也是按照字节存储的。
一种方法,使用联合体
typedef union{
float fv;
unsigned char bytes[4];
}FloatData;
串口发送的时候发送bytes
一种方法,使用联合体
typedef union{
float fv;
unsigned char bytes[4];
}FloatData;
串口发送的时候发送bytes
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是不是想把浮点数输出成十进制表示的字符串?
浮点型的数据组成,你大概还没有弄明白吧。先弄明白,才能进行后续的计算。
浮点型的数据组成,你大概还没有弄明白吧。先弄明白,才能进行后续的计算。
更多追问追答
追问
是十六进制的字符串,这话说的,什么叫浮点型的数据组成,你大概还没有弄明白吧?问题是你懂不懂啊,好象只需一个转化函数就可以了!请高手来解答一下啊!
追答
“好象只需一个转化函数就可以了”
取决于转换的初始数据类型和目标数据类型,不一定有现成的转换库函数,有可能需要自己写。因此你必须搞明白浮点数的数据组成(即二进制序列中各个位段的含义),才能进行后续的编写、验证工作。
之所以没人回答你的问题,是因为你的问题描述不清楚。或许你自己都搞不清楚自己真正的需求。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询