【FireBLE试用体验】外设篇(7)空间姿态MPU6050

  • gjianw217
  • LV4工程师
  • |      2015-10-06 12:40:02
  • 浏览量 843
  • 回复:0


    本篇体验板上的五向按键的控制,主要分3部分:硬件分析,软件实现,测试效果。


一、硬件分析

1 MPU6050模块



2 板载MPU6050电路

    FireBLE开发板上的六轴加速度传感器MPU6050模块原理图,如下图左边所示:它通过I2C接口与蓝牙芯片QN9021进行数据通信。MPU6050的中断引脚连接到了QN9021的P3_1引脚,原因在于:MPU6050的有效数据的获取是需要中断来提醒MCU,再进行采集


    MPU6050与控制器连接的3个引脚的功能配置如下表所示,其中IIC引脚又通过电平转换电路(如上图右边部分)连接到了扩展引脚端J10,可用来连接用户自定义设备。

P3_1

MPU6050_INT

0: P3_1 (I/O):GPIO

1: T0_2 (I/O):Timer 0 input capture /clock or PWM output

2: AIN1 (I):ADC input channel 1

3: ACMP0- (I):Analog comparator negative input

P2_4

SCL_TR—J10

MPU6050_SCL

0: P2_4 (I/O):GPIO

1: SCL (I/O):I2C master clock output with pull-up

2: PWM1 (O):PWM1 output

3: T3_ECLK (I/O):Timer 3 external clock input or PWM

output

P2_3

SDA_TR—J10

MPU6050_SDA

0: P2_3 (I/O):GPIO

1: SDA (I/O):I2C data transmit

2: ACMP0_O (O):Analog comparator result output

3: T3_0 (I/O):Timer 3 input capture /clock or PWM output


二 软件实现



1 移植MPU6050源码,在官方提供的源码中,已经提供了MPU6050的测试代码,该代码已经进行了模块化编程,移植只需要复制粘贴即可。但从头文件可看出,它是由正点原子(STM32的开荒者)提供。具体源码位置:即将mpu_6050.c和mpu_6050.h复制到自己的项目中,并参考mpu6050_example.c的测试例程,进行移植、封装。



2 根据mpu6050_example.c文件中的例程,编写MPU6050初始化封装函数


void MPU6050Init(void)

{

	MPU_Init();  //MPU6050模块初始

	MPU_IntInit();//中断引脚初始化

}
3 MPU6050测试函数该函数由main函数直接调用



void TestMPU6050(void)

{

	SystemInit(); 

	UartInit();             //初始化串口

	MPU6050Init();          //初始化MPU6050

	OLED_Init();			//初始化 OLED 

	

	OLED_Clear();			

	OLED_ShowString(0,0,(uint8_t*)"ICkey MPU6050");

	OLED_ShowString(0,3,(uint8_t*)"     20151006");

	printf("ICkey MPU6050 ");

	printf("20151006rn");

	

	delay(5000000);

	

	 while (1)  

    {

		MPU6050Show();	//显示获取的数据

		delay(500000);

    }

}
三 测试效果

1 OLED显示


2 串口显示



【FireBLE试用体验】试用报告汇总

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子