找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2564|回复: 0
打印 上一主题 下一主题
收起左侧

基于stm32的蓝牙加重力小车源码

[复制链接]
跳转到指定楼层
楼主
ID:221115 发表于 2017-12-2 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于stm32的蓝牙加无线重力感应小车

单片机源程序如下:
  1. #include "stm32f10x.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "uart3.h"
  5. #include "pwm.h"
  6. #include "dj.h"
  7. #include "stdlib.h"
  8. #include "math.h"


  9. #define FRONT   5       //前进上限
  10. #define AFTER   -5      //后退上限
  11. #define LEFT    5       //左移上限
  12. #define RIGHT   -5      //右移上限

  13. #define FA_RATE 25
  14. #define LR_RATE 25

  15. #define SPEED(x,y)          TIM_SetCompare1(TIM2,x);TIM_SetCompare2(TIM2,y)
  16. #define DJ(A,B,C,D)         DJ1=A;DJ2=B;DJ3=C;DJ4=D


  17. void vehicle_Init(void);


  18. int main(void)
  19. {
  20.         u8 *p;
  21.     int sum,sum1,sum2;
  22.     float sum3;
  23.         vehicle_Init();                //小车初始化
  24.         
  25.         while(1)
  26.         {
  27.                 if(USART3_RX_STA&0x8000)        //判断一帧数据接收完成
  28.                 {
  29.             p=USART3_RX_BUF;            //让p指向第一个角度值
  30.             sum=atoi((char *)p);
  31.             if(sum > FRONT)
  32.             {
  33.                 DJ(1,0,1,0);
  34.                 sum1 = sum*FA_RATE;
  35.                 sum2 = sum*FA_RATE;
  36.             }
  37.             else if(sum< AFTER)
  38.             {
  39.                 sum = abs(sum);
  40.                 DJ(0,1,0,1);
  41.                 sum1 = sum*FA_RATE;
  42.                 sum2 = sum*FA_RATE;
  43.             }
  44.             else
  45.             {
  46.                 DJ(0,0,0,0);
  47.                 sum1 = 0;
  48.                 sum2 = 0;
  49.             }
  50.             
  51.             while(*(p) != 0)    p++;        //让p指向第二个角度值
  52.             p++;
  53.             
  54.             sum=atoi((char *)p);
  55.             if(sum > LEFT)
  56.             {
  57.                 sum3 = sum/90.0;
  58.                 sum1 = sum1 - sum1*sum3;
  59.             }
  60.             else if(sum < RIGHT)
  61.             {
  62.                 sum = abs(sum);
  63.                 sum3 = sum/90.0;
  64.                 sum2 = sum2 - sum2*sum3;
  65.             }
  66.             SPEED(sum1,sum2);
  67.             USART3_RX_STA = 0;
  68.                 }
  69.         }
  70. }

  71. void vehicle_Init()
  72. {
  73.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断优先级分组
  74.    
  75.         delay_init();                 //延时函数初始化
  76.         
  77.         uart_init(9600);              //串口1初始化
  78.         
  79.         usart3_init(9600);            //串口3初始化
  80.         
  81.         TIM2_PWM_Init(1999,719);      //PWM初始化
  82.    
  83.         dj_init();                    //电机控制初始化
  84. }

复制代码

所有资料51hei提供下载:
小车.rar (370.67 KB, 下载次数: 24)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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