小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 6300|回复: 3

关于前后左右键与停止键的问题

[复制链接]
发表于 2014-2-25 16:25:58 | 显示全部楼层 |阅读模式
if(buffer[0]==0x00)         //如果类型位位0x00
        {
        switch(buffer[1])          //判断命令位类型
                {
                        case 0x01:MOTOR_GO_FORWARD; return;
                        case 0x02:MOTOR_GO_BACK;    return;
                        case 0x03:MOTOR_GO_LEFT;    return;
                    case 0x04:MOTOR_GO_RIGHT;   return;
                        case 0x00:MOTOR_GO_STOP;    return;
                        default: return;
                }       
        }
请教下:为什么按了前后左右键后不能继续切换到前后左右键的一个状态,只能通过按停止键来切换,代码哪里能体现出来?

回复

使用道具 举报

发表于 2014-2-25 18:26:45 | 显示全部楼层
我猜应该和上位机有关系吧!按下去是01,松开之后是00
回复 支持 反对

使用道具 举报

发表于 2014-2-25 23:27:52 | 显示全部楼层
上位机代码做了限制,添加了Send_status标志位,代码如下:
//前进
private void buttonForward_Click(object sender, EventArgs e)
        {
            if (Send_status)
            {
                RobotEngine2.SendCMD(controlType, CMD_Forward, comm);
                Send_status = false;
            }
        }
//停止
private void buttonStop_Click(object sender, EventArgs e)
        {
            Send_status = true;
            RobotEngine2.SendCMD(controlType, CMD_Stop, comm);
        }
只有触发了停止的动作,才将Send_status标志等于true,所以按了前后左右键后不能继续切换到前后左右键的一个状态,只有按了停止键才能切换控制状态。
这样设计目的:避免在小车控制方向的时候重复接收相同的方向控制指令,以减轻单片机处理串口数据的压力。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-25 23:45:53 | 显示全部楼层
robotStudio 发表于 2014-2-25 23:27
上位机代码做了限制,添加了Send_status标志位,代码如下:
//前进
private void buttonForward_Click(ob ...

哦哦,原来是上位机那里控制的,我一直在纠结以为是下位机的呢,谢啦
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-23 05:44 , Processed in 1.200352 second(s), 18 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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