打印
[PIC®/AVR®/dsPIC®产品]

分享一段识别串口发来指令的代码

[复制链接]
1256|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaoyang9992006|  楼主 | 2021-11-8 16:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    while (1)
    {
        // {AT:ABCD1234UP}
while(getch()=='{')
        {
            cmd[0] = '{';
            for(i=1;i<15;i++)
                cmd[i] = getch();
            if(cmd[14]=='}')
            {
                x=cmd[12];
                switch(x)
                {
                case 'U':
                    up();
                    printf("UP\n");
                    break;
                case 'D':
                    down();
                    printf("DOWN\n");
                    break;
                case 'L':
                    left();
                    printf("LEFT\n");
                    break;
                case 'R':
                    right();
                    printf("RIGHT\n");
                    break;
                case 'S':
                    stop();
                    printf("STOP\n");
                    break;
                case 'T':
                    Triangle(1);
                    printf("T-UP   ");
                    break;
                case 'V':
                    Triangle(0);
                    printf("T-DOWN ");
                    break;
                }
            }
        }
     }
大家有没有更好的方法呢,期待你的分享。

使用特权

评论回复
沙发
gaoyang9992006|  楼主 | 2021-11-8 16:37 | 只看该作者
{AT:ABCD1234UP}
这是我的指令格式,包含在一对大括号里。
我先识别到一个大括号开头,然后接收到完整的一个指令长度,判断结束位置是不是大括号的结尾,如果是,就从内取出对应的指令。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1964

主题

15941

帖子

208

粉丝