2015电子设计竞赛国赛控制类的题目,使用STM32F1系列单片机,l298n驱动完成的代码
单片机源程序如下:
- #include "stm32f10x.h"
- #include "mpu_usart.h"
- #include "motor_pwm.h"
- #include "motor_control.h"
- #include "delay.h"
- #include "timer.h"
- #include "usart.h"
- #include "oled.h"
- #include "indkey.h"
- #include "mpu6050.h"
- #include "inv_mpu.h"
- extern M1TypeDef M1;
- extern M2TypeDef M2;
- extern float pitch,roll,yaw; //欧拉角
- extern float set_y;
- extern float set_x;
- extern int CurMode;
- extern int Q1_Start;
- extern int Q2_Start;
- extern int Q3_Start;
- extern int Q4_Start;
- extern int Q5_Start;
- extern int Q6_Start;
- extern int LEDcnt;
- void Init(void)
- {
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- PWM_Init();
- Key_IO_Init();
-
- delay_init(); //延时函数初始化
- uart_init(500000); //串口初始化为9600
-
- MPU_Init(); //初始化MPU6050
-
- while(mpu_dmp_init());
- OLED_Init();
- // TIM1_Config(999,8);//0.125ms
- TIM2_Config(10000-1,71);//10ms
- }
- int main(void)
- {
- Init();
-
- while (1)
- {
- // OLED_ShowString(0,0,"A");
- if(LEDcnt==20)
- {
- LEDcnt=0;
- KeyScan();
- }
- if(LEDcnt>=20)
- LEDcnt=0;
- get_date();
- if(1)mpu6050_send_data(pitch,roll,M1.PWM,M2.PWM,set_x,set_y);//用自定义帧发送加速度和陀螺仪原始数据
-
-
- }
-
- }
复制代码
所有资料51hei提供下载:
风摆.rar
(385.1 KB, 下载次数: 47)
|