MPU6050的430控制程序--i2c通信协议

该博客详细介绍了如何使用C语言编写MPU6050传感器在430微控制器上的I2C通信程序,包括初始化设置、I2C通信函数和数据读取。通过设置陀螺仪和加速计的配置,实现了对MPU6050的数据采集,并提供了数据处理和显示的函数。
摘要由CSDN通过智能技术生成

本人经过反复调试确定参数,得出最优算法,实现MPU6050的430控制程序,先上程序:

//以下是传感器相关文件
//mpu6050.h
#define CPU_F ((double)8000000)
#define delayus(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))//宏定义延时函数
#define delayms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define SCL1 P5OUT|=BIT0
#define SCL0 P5OUT&=~BIT0
#define SCLOUT P5DIR|=BIT0;
#define SDA1 P5OUT|=BIT1//IIC数据引脚
#define SDA0 P5OUT&=~BIT1
#define SDAIN P5DIR&=~BIT1
#define SDAOUT P5DIR|=BIT1
#define SDADATA (P5IN&BIT1)
//****************************************
//定义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地址寄存器(默认

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值