OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4457|回复: 4

串口数据处理问题,字符数组数据提取问题

[复制链接]

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2021-2-5
在线时间
135 小时
发表于 2021-3-27 15:12:31 | 显示全部楼层 |阅读模式
如图所示,像这样数据传过来之后怎么将数据提取出来,如:数值24(温度)就是分别占数组的两个位置。问题就在于温度会变化,如果只有9℃,存储位置就会变化,所以就不能用死板的方式去截取。能以大家有没有什么简便的方法没?
图片1.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6741
金钱
6741
注册时间
2017-4-12
在线时间
1258 小时
发表于 2021-3-27 21:51:23 | 显示全部楼层
回复 支持 反对

使用道具 举报

12

主题

3389

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8643
金钱
8643
注册时间
2020-5-11
在线时间
4098 小时
发表于 2021-3-27 21:54:21 | 显示全部楼层
如果是数字字符就继续循环,若非数字则退出;
上次的结果*10+这次的字符转成的数字;
继续循环
专治疑难杂症
回复 支持 反对

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2021-3-28 12:11:14 | 显示全部楼层
串口打印就可以了
回复 支持 反对

使用道具 举报

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2021-2-5
在线时间
135 小时
 楼主| 发表于 2021-6-9 08:57:48 | 显示全部楼层
这个问题主要还是自己先入为主,认为代码有难度。其实你只需要一个无返回值的有参函数,将需要处理的数组及其长度传进这个自定义函数,然后定义变量,一个用于记录数组下标位置,一个用于记录有效数据长度。然后进入for循环中遍历数组,读取到分割符就进入数据处理,数据处理部分是一个switch,case选择,这个部分主要是处理不同长度的数据组合成一个有效的数值,如数据长度为3,就会进入case 3:value=data[0]*100+data[1]*10+data[2];然后退出后将数据长度重置为0,将value存储后也重置为0,进入下一次数据读取。最后在将存取value的函数拿出来使用就是对上面这种情况的处理。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-22 21:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表