标题:
STM32-MPU6050测试程序 简单地获取传感器数据
[打印本页]
作者:
fhrfhrfhr
时间:
2017-5-2 00:32
标题:
STM32-MPU6050测试程序 简单地获取传感器数据
/*********************************************************************************************/
【*】程序简介
-工程名称:陀螺仪—MPU6050
-实验平台: 秉火STM32 指南者 开发板
-MDK版本:5.16
-ST固件库版本:3.5
【 !】功能简介:
基本MPU6050驱动,简单地获取传感器数据。
【*】注意事项:
1.本工程使用硬件IIC,硬件IIC与液晶屏同时使用时会有冲突,所以本程序不包含液晶输出。
2.MPU6050的AD0引脚接GND时,地址为0x68 ,接3.3V时,地址为0x69,
可在bsp_i2c.h文件修改宏MPU6050_SLAVE_ADDRESS的值来匹配硬件连接,默认AD0接地,使用0x68地址
#define MPU6050_SLAVE_ADDRESS (0x68<<1)
【 !】实验操作:
步骤如下(步骤可参考配套的教程,有图片说明):
1.按照引脚分配说明连接好MPU6050模块和开发板。
2.确认开发板的USB TO USART接口已与电脑相连,确认电脑端能查看到该串口设备。
3..打开串口调试助手(波特率为115200),即可查看数据输出。
【*】 引脚分配
陀螺仪(MPU6050):
MPU6050芯片的I2C接口与STM32的I2C1相连,且已接上拉电阻。
VCC <--->3.3或5V
GND <--->GND
SCL <--->PB6
SDA <--->PB7
INT <--->PA11 传感器数据中断引脚
AD0 <--->悬空或接地
串口(TTL-USB TO USART):
CH340的收发引脚与STM32的发收引脚相连。
RX<--->PA9
TX<--->PA10
/*********************************************************************************************/
【*】 版本
-程序版本:1.0
-发布日期:2015-10
-版本更新说明:首次发布
/*********************************************************************************************/
/*********************************************************************************************/
0.png
(51.77 KB, 下载次数: 99)
下载附件
2017-5-2 01:16 上传
stm32单片机源程序:
/**
******************************************************************************
* @file main.c
* @author LYC
* @version V1.0
* @date 2014-04-22
* @brief MPU6050 硬件IIC测试
******************************************************************************
* @attention
* 实验平台:秉火 指南者 STM32 开发板
******************************************************************************
*/
#include "stm32f10x.h"
#include "stm32f10x_it.h"
#include "./systick/bsp_SysTick.h"
#include "./led/bsp_led.h"
#include "./usart/bsp_usart.h"
#include "./mpu6050/mpu6050.h"
#include "./i2c/bsp_i2c.h"
#define TASK_ENABLE 0
extern unsigned int Task_Delay[NumOfTask];
/*
* t : 定时时间
* Ticks : 多少个时钟周期产生一次中断
* f : 时钟频率 72000000
* t = Ticks * 1/f = (72000000/100000) * (1/72000000) = 10us
*/
/**
* @brief 主函数
* @param 无
* @retval 无
*/
int main(void)
{
short Acel[3];
short Gyro[3];
float Temp;
SysTick_Init();
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
/* LED 端口初始化 */
LED_GPIO_Config();
/* 串口通信初始化 */
USART_Config();
//I2C初始化
I2C_Bus_Init();
//MPU6050初始化
MPU6050_Init();
//检测MPU6050
if (MPU6050ReadID() == 1)
{
while(1)
{
if(Task_Delay[0]==TASK_ENABLE)
{
LED2_TOGGLE;
Task_Delay[0]=1000;
}
if(Task_Delay[1]==0)
{
MPU6050ReadAcc(Acel);
printf("加速度:%8d%8d%8d",Acel[0],Acel[1],Acel[2]);
MPU6050ReadGyro(Gyro);
printf(" 陀螺仪%8d%8d%8d",Gyro[0],Gyro[1],Gyro[2]);
MPU6050_ReturnTemp(&Temp);
printf(" 温度%8.2f\r\n",Temp);
Task_Delay[1]=500;//更新一次数据,可根据自己的需求,提高采样频率,如100ms采样一次
}
//************************************* 下面是增加任务的格式************************************//
// if(Task_Delay[i]==0)
// {
// Task(i);
// Task_Delay[i]=;
// }
}
}
else
{
printf("\r\n没有检测到MPU6050传感器!\r\n");
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
下载:
1.硬件STM32-MPU6050.zip
(6.44 MB, 下载次数: 196)
2017-5-2 00:31 上传
点击文件名下载附件
无
下载积分: 黑币 -5
作者:
法式油炸薯条
时间:
2018-4-10 20:23
下载下来学习一下!
作者:
1538762186
时间:
2018-5-1 15:00
下载资料学习学习
作者:
337252952
时间:
2018-7-1 11:00
很给力的一篇文张啊
作者:
337252952
时间:
2018-7-1 11:01
我觉得应该把单片机程序展示出来
作者:
mycnxp
时间:
2018-7-22 12:23
我像知道附件里面是什么??
作者:
mycnxp
时间:
2018-7-22 19:02
这个你自己测试过吗?
作者:
Ray_96
时间:
2018-8-4 01:24
学习学习
作者:
小赵伟
时间:
2018-8-31 18:47
你这测得的是原始值啊,能打印出具体角度、加速度么
作者:
tangwubing
时间:
2018-12-3 20:28
很给力的一篇文张啊
作者:
niuyunbo
时间:
2019-2-1 15:09
下载下来学习一下!
作者:
thinkingpadcui
时间:
2019-4-19 20:18
改成i2c2就不行了 啊
作者:
terryrret
时间:
2019-6-28 01:30
最近在做这方面的仿真,正好学习一下。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1