野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8475|回复: 11

PC发送多条命令到STM32F103ZET6,该如何一步步执行?

[复制链接]
发表于 2016-1-18 14:46:30 | 显示全部楼层 |阅读模式
主要是PC发送多条命令到STM32F103,STM32F103根据发送的命令一条一条的往下执行,可是这些命令顺序会变,有的还会重复,该如何判断对应的命令啊???????????????????
回复

使用道具 举报

发表于 2016-1-18 15:14:39 | 显示全部楼层
用switch case加状态机啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-18 15:29:03 | 显示全部楼层
flyleaf 发表于 2016-1-18 15:14
用switch case加状态机啊

switch是选中那个才运行,现在是PC传过来的命令STM32F103都需要执行啊,而且还是按照一定的顺序,那个不行
回复 支持 反对

使用道具 举报

发表于 2016-1-18 15:34:50 | 显示全部楼层
Vicky 发表于 2016-1-18 15:29
switch是选中那个才运行,现在是PC传过来的命令STM32F103都需要执行啊,而且还是按照一定的顺序,那个不 ...

针对每个命令都写一个函数不就好了?读到哪个命令就调用哪个函数,如果一个命令只需要执行一次的话那就加个标记,记录函数执行了多少次
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-18 15:51:09 | 显示全部楼层
flyleaf 发表于 2016-1-18 15:34
针对每个命令都写一个函数不就好了?读到哪个命令就调用哪个函数,如果一个命令只需要执行一次的话那就加 ...

对的,我刚想错了,只要每条后面不加break 它就一直执行下去对吧,谢谢啊,我试试看看。

还有个问题,命令的顺序不是不固定吗??switch 里面的顺序都是固定的那可咋办啊???
回复 支持 反对

使用道具 举报

发表于 2016-1-18 16:21:51 | 显示全部楼层
你把每个命令要执行的函数,分别放在case分支下面。不同的命令有不同的函数组来调用即可啊。哈哈。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-18 16:47:00 | 显示全部楼层
qduwg 发表于 2016-1-18 16:21
你把每个命令要执行的函数,分别放在case分支下面。不同的命令有不同的函数组来调用即可啊。哈哈。

嗯嗯,我在调试,谢谢啊!!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-18 22:04:20 | 显示全部楼层
qduwg 发表于 2016-1-18 16:21
你把每个命令要执行的函数,分别放在case分支下面。不同的命令有不同的函数组来调用即可啊。哈哈。

又有个问题,如何判断接收到的命令啊??????????????
我之前都是按照一个字节来接收的,命令的条数是变化的,那每个字节怎么对的上啊???????????
回复 支持 反对

使用道具 举报

发表于 2016-1-19 08:48:03 | 显示全部楼层
你完整的把你的想法写出来。举个例子。让大家明白你的意思。否则不好回答啊。

你的命令不是你自己定义的特殊的代码吗?你就识别出这个特殊代码即可啊?比如发送AA,执行一个函数F1()。发送的AB,执行F2()函数。不是这样的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-19 09:58:38 | 显示全部楼层
qduwg 发表于 2016-1-19 08:48
你完整的把你的想法写出来。举个例子。让大家明白你的意思。否则不好回答啊。

你的命令不是你自己定义的 ...

不是的,发送的是这样的一串字符“E2-50*B4-60.0*J15-Collecting data*H1-5*A2-60*"这只是一段,有时会比这串字符长,有时可能短点,类似这样,但是长度不固定,*是分隔符,*之前都是一条需要STM32F103执行的命令,现在主要是接收时怎么判断是哪条命令???这串字符是同时发送的。
回复 支持 反对

使用道具 举报

发表于 2016-1-19 18:41:33 | 显示全部楼层
你这是一下子发了好几条指令吗?你可以逐个按照星号来分隔开来啊。然后分别执行对应的指令。
回复 支持 反对

使用道具 举报

发表于 2016-1-19 18:47:31 | 显示全部楼层
Vicky 发表于 2016-1-19 09:58
不是的,发送的是这样的一串字符“E2-50*B4-60.0*J15-Collecting data*H1-5*A2-60*"这只是一段,有时会比 ...

如果不嫌麻烦的话,百度一下正则表达式,你会发现一个更广阔的天空
可以找一些c语言写的正则表达式库。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 21:53 , Processed in 0.049160 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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