[技术问答] 如何从串口接收的字符串中识别指令

[复制链接]
3564|28
 楼主| gejigeji521 发表于 2021-10-27 23:35 | 显示全部楼层 |阅读模式
有人知道没吗?
比如我给单片机发送指令
例如指令格式为CMD:xxx
 楼主| gejigeji521 发表于 2021-10-27 23:36 | 显示全部楼层
前面四个字符是CMD:
后面跟的是指令,而指令中可能 出现C,M,D
 楼主| gejigeji521 发表于 2021-10-27 23:36 | 显示全部楼层
该如何识别指令呢?
lyjian 发表于 2021-10-27 23:44 | 显示全部楼层
双方定好协议
wahahaheihei 发表于 2021-10-28 10:13 | 显示全部楼层
        while(getch()=='A')
        {
            if(getch()=='T')
            {
                x=getch();
                if(x=='A') {LED_SetLow();   printf("A\n");}
                if(x=='B') {LED_SetHigh();  printf("B\n");}
            }
        }
wahahaheihei 发表于 2021-10-28 10:14 | 显示全部楼层
类似这样,比如这个识别有没有ATA,或者ATB
sadicy 发表于 2021-11-1 10:55 | 显示全部楼层
就是通信协议定好了就可以
caigang13 发表于 2021-11-2 08:08 来自手机 | 显示全部楼层
那你自己得定一个协议
b5z1giu 发表于 2021-11-25 16:09 | 显示全部楼层
这个咋说呢,串口你接收数据会吧
cen9ce 发表于 2021-11-25 16:10 | 显示全部楼层
正常来说,串口接收数据也是一个收的,你可以收到放到一个缓存区,然后进行数据处理
d1ng2x 发表于 2021-11-25 16:12 | 显示全部楼层
这个识别命令就是对应每个字节,进行比较
ex7s4 发表于 2021-11-25 16:12 | 显示全部楼层
你先跑一下串口通讯例程
g0d5xs 发表于 2021-11-25 16:14 | 显示全部楼层
这个就是一个一个接收的,比如buf[3],buf[0] == ‘C’buf[1] == ‘D’
kaif2n9j 发表于 2021-11-25 16:14 | 显示全部楼层
一个一个比较就知道你的指令了
l1uyn9b 发表于 2021-11-25 16:14 | 显示全部楼层
这个就跑一下串口接收例程就行
lamanius 发表于 2021-11-25 16:16 | 显示全部楼层
串口接收的,存到缓冲区里,然后对比一下
p0gon9y 发表于 2021-11-25 16:17 | 显示全部楼层
这个用数组接收就好啦
tax2r6c 发表于 2021-11-25 16:17 | 显示全部楼层
识别命令 是靠接收到的数据 进行对比的
q1d0mnx 发表于 2021-11-25 16:18 | 显示全部楼层
串口接收数据就行了
t1ngus4 发表于 2021-11-25 16:19 | 显示全部楼层
我觉得这个好像不是很复杂,就用串口接收数据就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

198

主题

2509

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部