找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2083|回复: 1
收起左侧

蓝牙小车STM32程序

[复制链接]
ID:283012 发表于 2020-1-12 09:37 | 显示全部楼层 |阅读模式
芯片:STM32F1
蓝牙模块:HC-05
小车:两个驱动轮,差速转弯
手机APP:蓝牙SPP

单片机源程序如下:
  1. #include "key.h"
  2. #include "system.h"
  3. #include "SysTick.h"
  4. #include "led.h"
  5. #include "usart.h"
  6. #include "public.h"
  7. #include "string.h"         

  8. /*******************************************************************************
  9. * 函 数 名         : main
  10. * 函数功能                   : 主函数
  11. * 输    入         : 无
  12. * 输    出         : 无
  13. *******************************************************************************/

  14. int main()
  15. {
  16.         int R=140,L=140;
  17.         init();
  18.         LCD_Clear(BACK_COLOR);  //清屏
  19.         POINT_COLOR=BLACK;
  20.         while(1)
  21.         {
  22.                 LCD_ShowString(80,0,200,16,16,"L ");
  23.                 LCD_ShowString(80,20,200,16,16,"R ");
  24.                 LCD_ShowxNum(100,0,L,3,16,0);       
  25.                 LCD_ShowxNum(100,20,R,3,16,0);       
  26.                 if(k_up==0)
  27.                         {
  28.                                 delay_ms(5);
  29.                                 if(k_up==0)
  30.                                 {
  31.                                         L+=10;
  32.                                         if(L>500)
  33.                                                 L=500;
  34.                                         while(!k_up);                                       
  35.                                 }
  36.                         }
  37.                 if(k_down==0)
  38.                         {
  39.                                 delay_ms(5);
  40.                                 if(k_down==0)
  41.                                 {
  42.                                         L-=10;
  43.                                         if(L<0)
  44.                                                 L=0;
  45.                                         while(!k_down);                                       
  46.                                 }
  47.                         }       
  48.                 if(k_left==0)
  49.                         {
  50.                                 delay_ms(5);
  51.                                 if(k_left==0)
  52.                                 {
  53.                                         R-=10;
  54.                                         if(R<0)
  55.                                                 R=0;
  56.                                         while(!k_left);                                       
  57.                                 }
  58.                         }       
  59.                 if(k_right==1)
  60.                         {
  61.                                 delay_ms(5);
  62.                                 if(k_right==1)
  63.                                 {
  64.                                         R+=10;
  65.                                         if(R>500)
  66.                                                 R=500;
  67.                                         while(k_right);                                       
  68.                                 }
  69.                         }       
  70.                        
  71.                        
  72.                 if(USART3_RX_STA&0x8000)
  73.                  {                         
  74.                          if(strcmp((const char*)USART3_RX_BUF,"16604304260")==0)               
  75.                          {
  76.                           beep=1;
  77.                           delay_ms(1000);
  78.                           beep=0;
  79.                           Debug_screen();
  80.                          }                                 
  81.                  
  82.                    if(USART3_RX_BUF[0]=='8')//return
  83.                          {
  84.                
  85.                                  TIM_SetCompare1(TIM3, L);
  86.                                  TIM_SetCompare2(TIM3, 0);
  87.                                  TIM_SetCompare3(TIM3, R);
  88.                                  TIM_SetCompare4(TIM3, 0);
  89.                                  beep=~beep;
  90.                          }
  91.                         if(USART3_RX_BUF[0]=='5')
  92.                          {
  93.                                  TIM_SetCompare1(TIM3, 0);
  94.                                  TIM_SetCompare2(TIM3, 0);
  95.                                  TIM_SetCompare3(TIM3, 0);
  96.                                  TIM_SetCompare4(TIM3, 0);
  97.                                  //beep=~beep;
  98.                          }
  99.                          if(USART3_RX_BUF[0]=='2')//前进
  100.                          {
  101.                
  102.                                  TIM_SetCompare1(TIM3, 0);
  103.                                  TIM_SetCompare2(TIM3, L);
  104.                                  TIM_SetCompare3(TIM3, 0);
  105.                                  TIM_SetCompare4(TIM3, R);
  106.                                  beep=~beep;
  107.                          }
  108.                          if(USART3_RX_BUF[0]=='4')//左
  109.                          {
  110.                
  111.                                  TIM_SetCompare1(TIM3, 0);
  112.                                  TIM_SetCompare2(TIM3, L);//占空比2>占空比1左轮反转
  113.                                  TIM_SetCompare3(TIM3, R);
  114.                                  TIM_SetCompare4(TIM3, 0);
  115.                                  beep=~beep;
  116.                          }
  117.                          if(USART3_RX_BUF[0]=='6')//右
  118.                          {
  119.                
  120.                                  TIM_SetCompare1(TIM3, L);
  121.                                  TIM_SetCompare2(TIM3, 0);
  122.                                  TIM_SetCompare3(TIM3, 0);
  123.                                  TIM_SetCompare4(TIM3, R);//占空比4>占空比3右轮反转
  124.                                  beep=~beep;
  125.                          }
  126.                          USART3_RX_STA=0;
  127.                  }
  128.         }                                       
  129. }
复制代码

所有资料51hei提供下载:
蓝牙小车.7z (242.56 KB, 下载次数: 45)
回复

使用道具 举报

ID:24685 发表于 2020-5-21 14:47 | 显示全部楼层
怎么用u4打不开呢
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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