找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2529|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

藍(lán)牙小車STM32程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:283012 發(fā)表于 2020-1-12 09:37 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
芯片:STM32F1
藍(lán)牙模塊:HC-05
小車:兩個驅(qū)動輪,差速轉(zhuǎn)彎
手機(jī)APP:藍(lán)牙SPP

單片機(jī)源程序如下:
  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. * 函 數(shù) 名         : main
  10. * 函數(shù)功能                   : 主函數(shù)
  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')//前進(jìn)
  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左輪反轉(zhuǎn)
  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右輪反轉(zhuǎn)
  124.                                  beep=~beep;
  125.                          }
  126.                          USART3_RX_STA=0;
  127.                  }
  128.         }                                       
  129. }
復(fù)制代碼

所有資料51hei提供下載:
藍(lán)牙小車.7z (242.56 KB, 下載次數(shù): 45)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:24685 發(fā)表于 2020-5-21 14:47 | 只看該作者
怎么用u4打不開呢
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表