资源简介
利用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个文件信息
相关资源
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- mpu6050+hmc5883L.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
- STM32 DS3231驱动.zip
评论
共有 条评论