STM32测试MPU6050模块成功的程序 特此分
- UID
- 1062083
- 性别
- 男
|
STM32测试MPU6050模块成功的程序 特此分
本帖最后由 yuchengze 于 2016-12-27 11:34 编辑
注意事项:
(1)主程序编译会出现缺乏"stm32f10x_lib.h"文件
解决办法:在附件中主程序目录添加附件库"STM32F10x",在target opition中的C/C++选项卡中的include path路径中添加"STM32F10x"路径。
(2)MPU模块必须与STM32主控板共地,也就是说用板载电源供电最好。(我原先用的单独供电模块,结果串口输出一直为零)
下面是MPU6050模块程序预览:
- /*******************************************************************************
- // GY-521 MPU6050 IIC测试程序
- // 使用单片机STM32F103C8T6
- // 晶振:8.00M
- // 编译环境 Keil uVision4
- // 时间:2012年5月1日
- // 与模块连接 GPIOB6->SCL GPIOB7->SDA
- // 使用:STM32F103C8T6串口1连接电脑
- // 电脑串口助手显示,波特率:115200
- // QQ:531389319
- *******************************************************************************/
- #include "stm32f10x_lib.h"
- #include <math.h> //Keil library
- GPIO_InitTypeDef GPIO_InitStructure;
- ErrorStatus HSEStartUpStatus;
- #define uchar unsigned char
- #define uint unsigned int
- // 定义MPU6050内部地址
- //****************************************
- #define SMPLRT_DIV 0x19 //陀螺仪采样率,典型值:0x07(125Hz)
- #define CONFIG 0x1A //低通滤波频率,典型值:0x06(5Hz)
- #define GYRO_CONFIG 0x1B //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)
- #define ACCEL_CONFIG 0x1C //加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz)
- #define ACCEL_XOUT_H 0x3B
- #define ACCEL_XOUT_L 0x3C
- #define ACCEL_YOUT_H 0x3D
- #define ACCEL_YOUT_L 0x3E
- #define ACCEL_ZOUT_H 0x3F
- #define ACCEL_ZOUT_L 0x40
- #define TEMP_OUT_H 0x41
- #define TEMP_OUT_L 0x42
- #define GYRO_XOUT_H 0x43
- #define GYRO_XOUT_L 0x44
- #define GYRO_YOUT_H 0x45
- #define GYRO_YOUT_L 0x46
- #define GYRO_ZOUT_H 0x47
- #define GYRO_ZOUT_L 0x48
- #define PWR_MGMT_1 0x6B //电源管理,典型值:0x00(正常启用)
- #define WHO_AM_I 0x75 //IIC地址寄存器(默认数值0x68,只读)
- //****************************
- #define MPU6050_Addr 0xD0 //定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改
- unsigned char TX_DATA[4]; //显示据缓存区
- unsigned char BUF[10]; //接收数据缓存区
- char test=0; //IIC用到
- short T_X,T_Y,T_Z,T_T; //X,Y,Z轴,温度
- //************************************
- /*模拟IIC端口输出输入定义*/
- #define SCL_H GPIOB->BSRR = GPIO_Pin_6
- #define SCL_L GPIOB->BRR = GPIO_Pin_6
- #define SDA_H GPIOB->BSRR = GPIO_Pin_7
- #define SDA_L GPIOB->BRR = GPIO_Pin_7
- #define SCL_read GPIOB->IDR & GPIO_Pin_6
- #define SDA_read GPIOB->IDR & GPIO_Pin_7
- /* 函数申明 -----------------------------------------------*/
- void RCC_Configuration(void);
- void GPIO_Configuration(void);
- void NVIC_Configuration(void);
- void USART1_Configuration(void);
- void WWDG_Configuration(void);
|
|
|
|
|
|