Example #1
0
void Init_mpu6050()
{
	Single_WriteI2C(PWR_MGMT_1, 0x00);	//解除休眠状态
	Single_WriteI2C(SMPLRT_DIV, 0x07);
	Single_WriteI2C(CONFIG, 0x06);
	Single_WriteI2C(GYRO_CONFIG, 0x18);
	Single_WriteI2C(ACCEL_CONFIG, 0x01);	
}
Example #2
0
//**************************************
//初始化MPU6050
//**************************************
void InitMPU6050()
{
	Single_WriteI2C(PWR_MGMT_1, 0x00);	//解除休眠状态
	Single_WriteI2C(SMPLRT_DIV, 0x07);  //陀螺仪125hz
	Single_WriteI2C(CONFIG, 0x04);      //21HZ滤波 延时A8.5ms G8.3ms  此处取值应相当注意,延时与系统周期相近为宜
	Single_WriteI2C(GYRO_CONFIG, 0x08); //陀螺仪500度/S 65.5LSB/g
	Single_WriteI2C(ACCEL_CONFIG, 0x08);//加速度+-4g  8192LSB/g
}
/***************************************************************
** 函数名称: MPU6050Init
** 功能描述: MPU6050初始化函数
** 输 入:   
** 输 出:   
** 全局变量: 
** 作 者:   喵呜实验室
** 淘  宝:  Http://miaowlabs.taobao.com
** 日 期:   2014年08月01日
***************************************************************/
void MPU6050Init(void)
{
	Single_WriteI2C(PWR_MGMT_1, 0x00)  ; //解除休眠状态
	Single_WriteI2C(SMPLRT_DIV, 0x07)  ; //陀螺仪125hz
	Single_WriteI2C(CONFIG, 0x04)      ; //Accelerometer:21hz 8.5ms ; Gyroscope:20hz 8.3ms
	Single_WriteI2C(GYRO_CONFIG, 0x18) ; //±2000°/s  
	Single_WriteI2C(ACCEL_CONFIG, 0x01); //±2g
}
Example #4
0
//**************************************
//初始化MPU6050
//**************************************
void mpu6050_Configuration(void)
{
	IIC_Configuration();
	Single_WriteI2C(PWR_MGMT_1, 0x00);	//解除休眠状态
	Single_WriteI2C(SMPLRT_DIV, 0x07);
	Single_WriteI2C(CONFIG, 0x06);
	Single_WriteI2C(GYRO_CONFIG, 0x18);
	Single_WriteI2C(ACCEL_CONFIG, 0x01);
}
/*
 **********************************************************
 *
 * 初始化MPU6050
 *
 **********************************************************
 */
void InitMPU6050(void)
{
	Single_WriteI2C(PWR_MGMT_1, 0x00);//电源管理,典型值:0x00(正常启用)
	delay_ms(2);
	Single_WriteI2C(SMPLRT_DIV, 0x04);//陀螺仪采样率,典型值:0x04,五分频
	delay_ms(2);
	Single_WriteI2C(CONFIG2, 0x02);//低通滤波频率,典型值:0x02(截止频率100Hz)
	delay_ms(2);
	Single_WriteI2C(GYRO_CONFIG, 0x18);//陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)
	delay_ms(2);						
	Single_WriteI2C(ACCEL_CONFIG, 0x10);//加速计自检、测量范围及高通滤波频率,典型值:0x10(不自检,8G,5Hz)
	delay_ms(2);
}
Example #6
0
//#include "i2c.h"
void Init_mpu6050()
{
	Single_WriteI2C(PWR_MGMT_1,0x00);
	Single_WriteI2C(SMPLRT_DIV, 0x07);
	Single_WriteI2C(CONFIG, 0x06);
	Single_WriteI2C(GYRO_CONFIG, 0x18);
	Single_WriteI2C(ACCEL_CONFIG, 0x01);
/*	I2CA_WriteData(PWR_MGMT_1,0x00);
	I2CA_WriteData(SMPLRT_DIV, 0x07);
	I2CA_WriteData(CONFIG, 0x06);
	I2CA_WriteData(GYRO_CONFIG, 0x18);
	I2CA_WriteData(ACCEL_CONFIG, 0x01);*/
}
Example #7
0
int main(void)
{
	u32 i = 0, j = 0;
	float distance = 0.0;
	float light = 0.0;
	
	//SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
	//SysTick_Config(72);
	
	delay_init();	    	   //延时函数初始化
	NVIC_Configuration();  //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	TIM_Config();
	uart_init(115200);	 	 //串口初始化为115200
	KEY_Init();
 	LED_Init();			       //LED端口初始化
	SW_I2C_Init();
//	HW_I2C2_Init();

	Single_WriteI2C(SlaveAddress1, 0x02, 0x72);

	while(1)
	{
		distance = 0.0;
		light = 0.0;
		
		delay_ms(400);			
		
		// ks103测距
		if (distance_flag)
		{
			distance = Read_KS10X_Data(SlaveAddress1, 0xb0);
			printf("-%04d- distance: %04.3f  cm\r\n", i++, distance);
		}
		
		// ks103测光强
		if (light_flag)
		{
			light = Read_KS10X_Data(SlaveAddress1, 0xa0);
			printf("-%04d- light: %04.3f  cd\r\n", j++, light);
		}
		
		if (distance_flag | distance_flag)
			LED0 = !LED0;
/*
		t1 = tick;
		delay2x(1000);  // 延时167us
		t2 = tick;

		printf("time: %d us\r\n", t2 - t1);
*/
	}
}
Example #8
0
void InitMPU6050(void) {
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

	GPIO_InitStructure.GPIO_Pin = SCL | SDA;					//圆点博士:配置使用的I2C口
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //圆点博士:设置I2C口最大允许输出速度
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;	  //圆点博士:设置I2C为开漏输出
	GPIO_Init(I2C_PORT, &GPIO_InitStructure);

	Single_WriteI2C(PWR_MGMT_1, 0x00);	         //解除休眠状态
	Single_WriteI2C(SMPLRT_DIV, 0x4F);           //Sample Rate = Gyroscope Output Rate / (1 + SMPLRT_DIV) 100HZ
	Single_WriteI2C(CONFIG, 0x06);               //EXT_SYNC_SET=0 Input disabled,DLPF_CFG=7 RESERVED
	Single_WriteI2C(GYRO_CONFIG, 0x18);          //± 1000 °/s
	Single_WriteI2C(ACCEL_CONFIG, 0x01);         //± 2g
//    Single_WriteI2C(SIGNAL_PATH_RESET, 0x07);    //reset

// 		Single_WriteI2C(PWR_MGMT_1, 0x00);	//解除休眠状态
	Single_WriteI2C(SMPLRT_DIV, 0x07);
// 	Single_WriteI2C(CONFIG, 0x06);
// 	Single_WriteI2C(GYRO_CONFIG, 0x18);
// 	Single_WriteI2C(ACCEL_CONFIG, 0x01);

}