通过串口输入字符串转化成浮点数
各位大神,如何通过串口输入字符串并且转化成双精度浮点数,我想用上位机控制DDS信号源的频率,但是只会把串口输入的数转换成long型变量,float型变量不知如何转换 本帖最后由 pww999 于 2012-8-26 20:09 编辑Convert,ToDecimal(string);
Convert,ToFloat(string);
前提是你要验证下 字符串是否是浮点数据
http://blog.sina.com.cn/s/blog_63ce16cb0100xawf.html 我最亲爱的人们、要记得:爱情是此时此地、事关现在…婚姻是从此以后、事关一生…请三思而后行~ 问题部分解决了,使用Serial.parseFloat()函数就行了:):),但是只能转换成单精度浮点数,不能从串口输入双精度浮点数 pww999 发表于 2012-8-26 19:34 static/image/common/back.gif
Convert,ToDecimal(string);
Convert,ToFloat(string);
前提是你要验证下 字符串是否是浮点数据
convert只能在C#里用,arduino里会报错。。。 差不多解决了
代码:
#include <stdlib.h>
char *comdata;
double a;
String c="";
boolean mark=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
while(Serial.available()>0)
{
c+=char(Serial.read());
delay(2);
mark=1;
}
if(mark==1)
{
Serial.print("c=");
Serial.println(c);
comdata=&c;
Serial.print("comdata=");
Serial.println(comdata);
a=atof(comdata);
Serial.print("a=");
Serial.println(a,10);
Serial.println(sizeof(a));
mark=0;
c=String("");
}
}
页:
[1]