找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32风力摆系统源代码

[复制链接]
跳转到指定楼层
楼主
ID:241034 发表于 2017-10-19 19:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
希望能帮到人
所有资料51hei提供下载:
风力摆源代码.rar (340.51 KB, 下载次数: 16)


风力摆的stm32单片机源程序如下:
  1. /*-------------------------------------------------------------------------------------------
  2.                                                    风力摆控制系统(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 "usart3.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();        //LED相关I/O口初始化
  47.         Key_IO_Init();                //按键I/O口
  48.         PID_M1_Init();                //初始化M1PID结构体参数
  49.         PID_M2_Init();                //初始化M2PID结构体参数
  50.         M1TypeDef_Init();        //初始化M1结构体参数
  51.         M2TypeDef_Init();        //初始化M2结构体参数
  52.         PWM_Init();                        //PWM初始化
  53.         TIM1_Config(200-1,71);  /* TIM1 10ms Inturrupt (用于扫描按键) */
  54.         TIM5_Config(5000-1,71);   /* TIM5 5ms Inturrupt 采样率200Hz 不能更改*/
  55.         USART1_Config();                //串口1初始化
  56.         USART1_printf(USART1," 系统启动成功!\r\n");
  57.         USART3_Config();                //串口2初始化
  58.         USART1_printf(USART1,"CLS(0);DS16(6,02,'2015全国大学生电子设计竞赛',10);DS16(54,22,'风力摆控制系统',2);\r\n");
  59.         Display_Title();                //显示标题(通过串口2发送)
  60.         MPU6050_Init();                //MPU6050初始化                                                                    
  61.         TIM_Cmd(TIM5,ENABLE);          //使能TIM5定时器,电机控制都在TIM5完成
  62.         TIM_Cmd(TIM1,ENABLE);        //使能TIM1定时器
  63. }
  64. /*-----------------------------------------
  65.                                 主 函 数
  66. ------------------------------------------*/
  67. int main(void)   
  68. {   
  69.         BSP_Init();                        //初始化所有的外设
  70.         //角度采样和运动控制都在中断函数TIM5_IRQHandler()中完成
  71.         while(1)                  //循环函数,在有按键按下时做出相应的操作
  72.         {         
  73.                 if(Q1_Start == 1)
  74.                 {
  75.                         CurMode = 1;
  76.                 }
  77.                 else if(Q2_Start == 1)
  78.                 {
  79.                         CurMode = 2;
  80.                 }
  81.                 else if(Q3_Start == 1)
  82.                 {
  83.                          CurMode = 3;
  84.                 }
  85.                 else if(Q4_Start == 1)
  86.                 {
  87.                          CurMode = 4;
  88.                 }
  89.                 else if(Q5_Start == 1)
  90.                 {
  91.                         CurMode = 5;
  92.                 }
  93.                 else if(Q6_Start == 1)
  94.                 {
  95.                         CurMode = 6;
  96.                 }
  97.                 else
  98.                 {
  99.                         CurMode = 0;
  100.                 }        
  101.         }     
  102. }

  103.         
复制代码




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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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