找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2751|回复: 3
收起左侧

基于MPU6050的二轮平衡车 STM32程序

[复制链接]
ID:183217 发表于 2019-7-18 21:03 | 显示全部楼层 |阅读模式
基于MPU6050的二轮平衡车,注释比较多,方便理解。

单片机源程序如下:
  1. /******************** (C) COPYRIGHT (2015)BST BALANCECAR **************************
  2. * 文件名  :main.c
  3. **********************************************************************************/
  4. #include "stm32f10x.h"
  5. #include "mpu6050.h"
  6. #include "i2c_mpu6050.h"
  7. #include "motor.h"
  8. #include "upstandingcar.h"
  9. #include "SysTick.h"
  10. #include "led.h"
  11. #include "usart.h"
  12. #include "i2c.h"
  13. #include "outputdata.h"
  14. #include "timer.h"
  15. #include "UltrasonicWave.h"
  16. #include "stm32f10x_usart.h"

  17. float gyz;
  18. int acc;
  19. int acc1;

  20. /*协议相关*/
  21. //extern u8 newLineReceived = 0;

  22. /*
  23. * 函数名:main
  24. * 描述  :主函数
  25. */
  26. int main(void)
  27. {       
  28.       
  29.        
  30.           SystemInit();                   //=====系统初始化
  31.         Timerx_Init(5000,7199);                                   //定时器TIM1
  32.         UltrasonicWave_Configuration();            //超声波初始化设置 IO口及中断设置                            

  33.         USART1_Config();                                                //串口1初始化 上位机
  34.         USART3_Config();                                                //串口3初始化 蓝牙与USART3公用相同IO口
  35.        
  36.         TIM2_PWM_Init();                                           //PWM输出初始化
  37.         MOTOR_GPIO_Config();                                  //电机IO口初始化
  38.           LED_GPIO_Config();
  39.        
  40.    TIM3_External_Clock_CountingMode();           //左电机脉冲输出外部中断口PA7使用TIM3定时器用作为脉冲数计算
  41.    TIM4_External_Clock_CountingMode();           //右电机脉冲输出外部中断口PB7使用TIM4定时器用作为脉冲数计算
  42.           TIM3_Encoder_Init();                       //编码器获取脉冲数 PA6 7
  43.           TIM4_Encoder_Init();                       //编码器获取脉冲数 PB6 7       
  44.         ////////////////////DMP/////////////////////////////////
  45.         i2cInit();                                                           //IIC初始化 用于挂靠在总线上的设备使用
  46.         delay_nms(10);                                                   //延时10ms
  47.         MPU6050_Init();                                                   //MPU6050 DMP陀螺仪初始化
  48.        
  49.         SysTick_Init();                                                  //SysTick函数初始化       
  50.         CarUpstandInit();                                          //小车直立参数初始化
  51.         SysTick->CTRL |=  SysTick_CTRL_ENABLE_Msk;         //使能总算法时钟

  52.         while (1)
  53.         {

  54.                 GPIO_ResetBits(GPIOC, GPIO_Pin_13);
  55.                         MPU6050_Pose();                                                 //获取MPU6050角度状态
  56.                 gy0=gyro[0];
  57. //                 UltrasonicWave_StartMeasure();           //调用超声波发送程序 给Trig脚 <10us 高电平                 
  58. //                 chaoshengbo();                               //计算超声波测距距离
  59. //    printf("%d",ucBluetoothValue);
  60. //                printf("\t");
  61. //                printf("%f",BST_fSpeedControlOutNew);
  62. //                printf("\t");
  63. //                printf("%f",BST_fCarAngle);
  64. //                printf("\t");
  65. //                 printf("%f",BST_fLeftMotorOut);
  66. //                printf("\t");
  67. //                printf("\n");
  68.                
  69.                 if (newLineReceived)
  70.                    {
  71.                         ProtocolCpyData();
  72.                         Protocol();
  73.                 }
  74.                 /*通过状态控制小车*/
  75.                 CarStateOut();
  76.                
  77.                 SendAutoUp();
  78.                
  79.                          
  80.          }
  81.                                                                     
  82. }
复制代码

所有资料51hei提供下载:
STM32平衡车.7z (500.19 KB, 下载次数: 93)
回复

使用道具 举报

ID:448382 发表于 2019-11-30 16:58 | 显示全部楼层
你好,程序我有下载,我想问一下里面编码器读取到的数据在哪有用到的?
回复

使用道具 举报

ID:448382 发表于 2019-11-30 17:00 | 显示全部楼层
本帖最后由 帕里亚奇 于 2019-12-11 20:42 编辑

霍尔编码器也适用吗?
回复

使用道具 举报

ID:332041 发表于 2020-1-12 19:06 | 显示全部楼层
这个贴子不错,真心收藏了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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