GD32F310开发板串口的数据接收与数字自动转换

网友投稿 240 2022-11-06

GD32F310开发板串口的数据接收与数字自动转换

开发环境

Windows10

新建工程就不赘述,看这个

启动串口

数据处理API

struct _Chang_Num{ char *Source; char Sign[8]; float NUM[8]; char flag;};char Data_Chang_NUM (struct _Chang_Num *Item){ char Data_Array[12] = {0}; //数字的str数 char str[36]; //装source数据到这个缓存区,这个缓存区是要变的 char Data; char n,m = 0; char i,flag = 1; //i是当前找的是 第几个 Sign char Find_Time = strlen(Item->Sign); //要找多少个 char Length = strlen(Item->Source); //源的长度 strcpy(str,Item->Source); if(Length > 36) Length = 36; for (i = 0; i < Find_Time; i++) { flag = 0; for(n = 0;n < Length;n++) { Data = str[n]; if(str[n] == Item->Sign[i]) //找到标志 { str[n] = 0; flag = 1; //开始识别str m = 0; } if(flag) { if((str[n] <= '9' && str[n] >= '0') || str[n] == '.' || str[n] == '-') { Data_Array[m] = str[n]; //把数字相关str的装起来 m++; //m是数字在str的长度 } else { if(m > 0) //数字部分结束 { if(Data_Array[m-1] == '.' || Data_Array[m-1] == '-') //不让最后一位为 '.' and '-' Data_Array[m-1] = '\0'; else Data_Array[m] = '\0'; break; } } } } Item->NUM[i] = atof(Data_Array); // Data_Replace ("123",Data_Array,0,sizeof(Data_Array)); } return Item->flag;}

配置好你想要的参数在结构体中,然后将串口的缓冲区放入这个函数即可。

将printf函数映射到串口,看这里

struct _Chang_Num Item_n = { .Source = "a:3.14......,b:3322..,c:-9.0..-", .Sign = {':',':',':'},};int main (void){ printf("sign :%s",Item_n.Sign); Data_Chang_NUM (&Item_n); for (char i = 0; i < 3; i++) { printf("num %d :%.2f \n",i,Item_n.NUM[i]); } while(1);}

API效果

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:鸿蒙手机被质疑遥遥无期,主要是因为这个原因
下一篇:揭开5G神秘面纱
相关文章

 发表评论

暂时没有评论,来抢沙发吧~