标题:高手帮帮我啊,一个关于小车的程序。
取消只看楼主
bkss111
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-12-28
结帖率:100%
已结贴  问题点数:10 回复次数:1 
高手帮帮我啊,一个关于小车的程序。
下面的程序是小车的主程序,要求小车接收到串口接收到的字符sbuf后可以转向,可是我的程序调试时左转了之后,就一直左转着
应该是左转一下可以向前走。求解啊。
int main(void)      //主程序
{
  
     char flag=1;
    uart_Init();
     printf("Program Running!\n");
        while(flag)
         {
           m = SBUF;
           switch(m)
          {
           case 0x66:                    //接收到字母“f”,则小车向前行驶
                 Forward();             //向前
                 printf("run forward!\n");
                 flag=0;
           break;
           case 0x62:                    //接收到字母“b”,则小车向后行驶
                 Backward();
                 printf("run backward!\n");
                 flag=0;
           break;
           case 0x6c:                     //接收到字母“l”,则小车左转
                 Left_Turn();
                 printf("turn left!\n");
                  flag=0;
           break;
           case 0x72:                      //接收到字母“r”,则小车右转
                  Right_Turn();
                  printf("turn right!\n");
                   flag=0;
           break;
           case 0x73:                      //接收到字母“s”,则小车停止
                  Stop();
                  printf("stop!\n");
                  flag=0;
           break;
           default:                      //其他情况,小车前进
                  return 0x66;
                  flag=0;
           break;
          }
        flag=1;
        }
 }
搜索更多相关主题的帖子: 小车 Running forward 主程序 
2012-12-29 19:31
bkss111
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-12-28
得分:0 
程序是漏洞百出,自己改了之后基本能满足条件,但是遇到新问题,小车在没接收到指令时应该停止,现在却向前行走...
int main(void)      //主程序
{   
    char m1;   
    uart_Init();
    printf("Program Running!\n");
            
         while(1)
         {            
           m = SBUF;
           if(m==0x62||m==0x73||m!=m1)
             m1=m;
           else
                 m1=0x66;
          switch(m1)
          {
           case 0x66:                    //接收到字母“f”,则小车向前行驶                  
                 Forward();            
                 printf("forward!\n");              
           break;
           case 0x62:                    //接收到字母“b”,则小车向后行驶
                 Backward();
                 printf("backward!\n");                                    
           break;
           case 0x6c:                    //接收到字母“l”,则小车左转            
                 Left_Turn();
                 printf("left!\n");                 
           break;
           case 0x72:                   //接收到字母“r”,则小车右转
                  Right_Turn();
                 printf("right!\n");                 
           break;
           case 0x73:                  //接收到字母“s”,则小车停止
                  Stop();
                  printf("stop!\n");                  
           break;
           default:                      //其他情况,小车前进
                    Stop();                 
           break;
          }   
          m1=m;        
       }                  
       return 0;
}
痛苦
2013-01-01 20:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-394461-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.241234 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved