找回密码
 立即注册

QQ登录

只需一步,快速开始

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

风力摆STM32源码 带PID卡尔曼滤波四元素算法

[复制链接]
跳转到指定楼层
楼主
风力摆源码
内带PID算法
卡尔曼滤波
四元素算法


单片机源程序如下:
  1. /*-------------------------------------------------------------------------------------------
  2.                                                    风力摆控制系统(2015-8-12)

  3. 硬件平台:
  4.                          主控器: STM32F103VET6 64K RAM 512K ROM
  5.                         驱动器: LMD18200T
  6.                     电源:   DC +12V

  7. 软件平台:
  8.                          开发环境: RealView MDK-ARM uVision4.10
  9.                         C编译器 : ARMCC
  10.                         ASM编译器:ARMASM
  11.                         连接器:   ARMLINK
  12.                         底层驱动: 各个外设驱动程序      

  13. 时间: 2015年8月12日      

  14. 作者: BoX
  15. -------------------------------------------------------------------------------------------*/   
  16. #include "stm32f10x.h"
  17. #include "usart1.h"                                         
  18. #include "delay.h"
  19. #include "led.h"
  20. #include "timer.h"
  21. #include "motor_control.h"
  22. #include "motor_pwm.h"
  23. #include "motor_pid.h"
  24. #include "stdlib.h"
  25. #include "indkey.h"
  26. #include "mpu6050.h"
  27. #include "ahrs.h"
  28. #include "math.h"
  29. #include "usart2.h"
  30. /*------------------------------------------
  31.                                  全局变量                                
  32. ------------------------------------------*/
  33. extern uint8_t Q1_Start;
  34. extern uint8_t Q2_Start;
  35. extern uint8_t Q3_Start;
  36. extern uint8_t Q4_Start;
  37. extern uint8_t Q5_Start;
  38. extern uint8_t Q6_Start;
  39. extern uint8_t CurMode;
  40. /*-----------------------------------------
  41.                             初始化外设
  42. ------------------------------------------*/
  43. void BSP_Init(void)
  44. {
  45.         DelayInit();
  46.         LED_GPIO_Config();
  47.         Key_IO_Init();        
  48.         PID_M1_Init();
  49.         PID_M2_Init();
  50.         M1TypeDef_Init();
  51.         M2TypeDef_Init();        
  52.         PWM_Init();
  53.         TIM1_Config(10000-1,71);  /* TIM1 10ms Inturrupt  */
  54.         TIM5_Config(5000-1,71);   /* TIM5 5ms Inturrupt 采样率200Hz 不能更改*/
  55.         USART1_Config();
  56.         USART1_printf(USART1," 系统启动成功!\r\n");
  57.         USART2_Config();
  58.         Display_Title();
  59.         MPU6050_Init();                  //MPU6050                                                                           
  60.         TIM_Cmd(TIM5,ENABLE);            //电机控制都在TIM5完成
  61.         TIM_Cmd(TIM1,ENABLE);
  62. }
  63. /*-----------------------------------------
  64.                                 主 函 数
  65. ------------------------------------------*/
  66. int main(void)   
  67. {   
  68.         BSP_Init();
  69.         //角度采样和运动控制都在TIM5_IRQHandler()中完成
  70.         while(1)  
  71.         {         
  72.                 if(Q1_Start == 1)
  73.                 {
  74.                         CurMode = 1;
  75.                 }
  76.                 else if(Q2_Start == 1)
  77.                 {
  78.                         CurMode = 2;
  79.                 }
  80.                 else if(Q3_Start == 1)
  81.                 {
  82.                          CurMode = 3;
  83.                 }
  84.                 else if(Q4_Start == 1)
  85.                 {
  86.                          CurMode = 4;
  87.                 }
  88.                 else if(Q5_Start == 1)
  89.                 {
  90.                         CurMode = 5;
  91. ……………………

  92. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
风力摆源代码.7z (190.94 KB, 下载次数: 55)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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