资源简介
利用STM32读取MPU6050三个角度的值,通过串口观察数据
代码片段和文件信息
#include “control.h“
#include “filter.h“
#define PI 3.14159265
/**************************************************************************
作者:Mini Balance
淘宝店铺:http://shop114407458.taobao.com/
**************************************************************************/
/**************************************************************************
函数功能:5MS定时中断函数 5MS控制周期
入口参数:无
返回 值:无
作 者:Mini Balance
**************************************************************************/
void TIM1_UP_IRQHandler(void)
{
if(TIM1->SR&0X0001)//5ms定时中断
{
TIM1->SR&=~(1<<0); //===清除定时器1中断标志位
Led_Flash(400); //===LED闪烁;
Key(); //===扫描按键状态
Moto1=2000-5*Pitch+gyro[1]*8/100 -5*Roll+gyro[0]*8/100 ;//平衡的PD控制 可自行加入Z轴P控制抑制自旋
Moto2=2000+5*Pitch-gyro[1]*8/100 +5*Roll-gyro[0]*8/100 ;//////////////
Moto3=2000-5*Pitch+gyro[1]*8/100 +5*Roll-gyro[0]*8/100 ;//////////////
Moto4=2000+5*Pitch-gyro[1]*8/100 -5*Roll+gyro[0]*8/100 ;//////////////
Xianfu_Pwm(); //===PWM限幅
if(Turn_Off()==0) //===如果不存在异常
Set_Pwm(Moto1Moto2Moto3Moto4); //===赋值给PWM寄存器
}
}
/**************************************************************************
函数功能:赋值给PWM寄存器
入口参数:PWM
返回 值:无
作 者:Mini Balance
**************************************************************************/
void Set_Pwm(int moto1int moto2int moto3int moto4)
{
PWMA=myabs(moto1);
PWMB=myabs(moto2);
PWMC=myabs(moto3);
PWMD=myabs(moto4);
}
/**************************************************************************
函数功能:限制PWM赋值
入口参数:无
返回 值:无
作 者:Mini Balance
**************************************************************************/
void Xianfu_Pwm(void)
{
int Amplitude=4000;
if(Moto1<0) Moto1=0;
if(Moto1>Amplitude) Moto1=Amplitude;
if(Moto2<0) Moto2=0;
if(Moto2>Amplitude) Moto2=Amplitude;
if(Moto3<0) Moto3=0;
if(Moto3>Amplitude) Moto3=Amplitude;
if(Moto4<0) Moto4=0;
if(Moto4>Amplitude) Moto4=Amplitude;
}
/**************************************************************************
函数功能:异常关闭电机
入口参数:倾角和电压
返回 值:1:异常 0:正常
作 者:Mini Balance
**************************************************************************/
u8 Turn_Off(void)
{
u8 temp;
if(Pitch<-40||Pitch>40||1==Flag_Stop||Roll<-40||Roll>40)
{ //===倾角大于40度关闭电机
temp=1; //===Flag_Stop置1关闭电机
}
else
temp=0;
return temp;
}
/**************************************************************************
函数功能:绝对值函数
入口参数:int
返回 值:unsigned int
**************************************************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-10 16:28 6050 角度获取\BALANCE\
目录 0 2018-03-10 16:28 6050 角度获取\BALANCE\CONTROL\
文件 3645 2015-10-17 19:30 6050 角度获取\BALANCE\CONTROL\control.c
文件 532 2015-10-17 18:13 6050 角度获取\BALANCE\CONTROL\control.h
目录 0 2018-03-10 16:56 6050 角度获取\BALANCE\DataScope_DP\
文件 2667 2018-03-10 16:56 6050 角度获取\BALANCE\DataScope_DP\DataScope_DP.C
文件 586 2015-07-09 14:05 6050 角度获取\BALANCE\DataScope_DP\DataScope_DP.h
目录 0 2018-03-10 16:28 6050 角度获取\BALANCE\DMP\
文件 19342 2012-12-14 11:16 6050 角度获取\BALANCE\DMP\dmpKey.h
文件 6765 2012-12-14 11:16 6050 角度获取\BALANCE\DMP\dmpmap.h
文件 84104 2015-07-09 14:05 6050 角度获取\BALANCE\DMP\inv_mpu.c
文件 4335 2015-07-09 14:05 6050 角度获取\BALANCE\DMP\inv_mpu.h
文件 57839 2015-07-09 14:05 6050 角度获取\BALANCE\DMP\inv_mpu_dmp_motion_driver.c
文件 3386 2015-07-09 14:05 6050 角度获取\BALANCE\DMP\inv_mpu_dmp_motion_driver.h
目录 0 2018-03-10 16:28 6050 角度获取\BALANCE\filter\
文件 2811 2015-07-09 19:48 6050 角度获取\BALANCE\filter\filter.c
文件 931 2015-07-09 19:48 6050 角度获取\BALANCE\filter\filter.h
目录 0 2018-03-10 16:44 6050 角度获取\BALANCE\MPU6050\
文件 11157 2018-03-10 16:42 6050 角度获取\BALANCE\MPU6050\MPU6050.c
文件 14791 2018-03-10 16:44 6050 角度获取\BALANCE\MPU6050\mpu6050.h
目录 0 2018-03-10 16:28 6050 角度获取\BALANCE\show\
文件 2119 2015-10-17 19:23 6050 角度获取\BALANCE\show\show.c
文件 331 2015-10-16 09:30 6050 角度获取\BALANCE\show\show.h
目录 0 2018-03-10 16:54 6050 角度获取\HARDWARE\
目录 0 2018-03-10 16:28 6050 角度获取\HARDWARE\IIC\
文件 10558 2015-10-07 22:15 6050 角度获取\HARDWARE\IIC\IOI2C.c
文件 3123 2015-10-07 22:15 6050 角度获取\HARDWARE\IIC\IOI2C.h
目录 0 2018-03-10 16:28 6050 角度获取\HARDWARE\KEY\
文件 1633 2015-10-07 21:37 6050 角度获取\HARDWARE\KEY\key.c
文件 235 2015-10-16 13:57 6050 角度获取\HARDWARE\KEY\key.h
目录 0 2018-03-10 16:58 6050 角度获取\HARDWARE\LED\
............此处省略118个文件信息
相关资源
- STM32F103 实现SI4432通讯 测试成功
- 8乘*8无冲突矩阵键盘STM32程序
- stm32-编码器模式
- stm32 ppm解码
- 基于stm32f407的贪吃蛇
- 基于STM32的WIFI模块进行数据传输
- 基于STM32系统的ATT7022计量芯片智能电
- STM32战舰版RC522使用例程
- 基于STM32的ADC采样(双通道)
- 基于是stm32的PWM呼吸灯
- STM32+OV7670+LCDTFT显示256灰阶
- STM32使用LCD屏显示串口数据
- SGP30_PM2.5_STM32F103.rar
- 基于STM32的热水器设计毕业设计
- 基于stm32的信号发生器
- STM32模拟VGA时序,单色显示
- STM32F072多路DS18B20温度传感器
- STM32F407引脚说明
- STM32读取MPU6050官方DMP库
- stm32——万年历
- STM32 CAN收发程序
- STM32 USB读取MicroSD卡模拟U盘
- STM32AES加密程序.zip
- STM32使用4x4矩阵薄膜键盘
- STM32旋转编码器程序
- stm32f103+2路USART+SPI+CAN+FreeRTOS操作系统
- 蓝牙控制8个舵机STM32F407+pca9685+HC06
- 野火STM32F10X例程源码_重力感应(MMA
- 智能车程序 PID 循迹
- STM32F4ZGT6控制烟雾与温湿度传感器
评论
共有 条评论