一 前记
MPU-60X0 是全球首例9 轴运动处理传感器。它集成了3 轴MEMS 陀螺仪,3 轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP(Digital Motion Processor),可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其I2C 或SPI 接口输出一个9 轴的信号(SPI 接口仅在MPU-6000 可用)。MPU-60X0 也可以通过其I2C 接口连接非惯性的数字传感器,比如压力传感器。该传感器在可穿戴市场应用十分广泛。把该传感器和超低功耗的mcu芯片结合,可以实现穿戴式设备的小尺寸,超长待机等特点。
二 源码解析
笔者用的是该mcu芯片的I2C接口和该传感器做通信接口,具体初始化代码如下:
uint32_t app_mpu6050_init(void) { int ret = 0; //reset mpu6050 sensor_write(MPU_PWR_MGMT1_REG,0x80); am_util_delay_ms(100); //wake up mpu6050 sensor_write(MPU_PWR_MGMT1_REG,0x00); MPU_Set_Gyro_Fsr(3); MPU_Set_Accel_Fsr(0); MPU_Set_Rate(50); sensor_write(MPU_INT_EN_REG,0x00); // close all irq sensor_write(MPU_USER_CTRL_REG,0x00); // i2c master closed sensor_write(MPU_FIFO_EN_REG,0x00); // close fifo mode sensor_write(MPU_INTBP_CFG_REG,0x80); //init low en uint8_t rx_addr = 0; rx_addr = sensor_read(MPU_DEVICE_ID_REG); am_util_stdio_printf("i2c rx addr is:0x%x \n\r",rx_addr); if(rx_addr == MPU_ADDR) { sensor_write(MPU_PWR_MGMT1_REG,0x01); sensor_write(MPU_PWR_MGMT2_REG,0x00); //acceleration and gyros MPU_Set_Rate(50); //设置采样率为50Hz } else { am_util_stdio_printf("app_mpu6050_init failed:0x%x \n",ret); return 1; } am_util_stdio_printf("app_mpu6050_init success:0x%x \n",ret); return 0; }
处理函数:
void app_mpu6050_process(void) { short aacx,aacy,aacz; short gyrox,gyroy,gyroz; uint32_t i2c_cnt = 0; while(1) { short temp_per = MPU_Get_Temperature(); MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz); MPU_Get_Accelerometer(&aacx,&aacy,&aacz); am_util_stdio_printf("get_temp:%d \n",temp_per); am_util_stdio_printf("get_gyroscope is x:%d y:%d z:%d \n",gyrox,gyroy,gyroz); am_util_stdio_printf("get_acceleromoeter is x:%d y:%d z:%d \n",aacx,aacy,aacz); am_util_delay_ms(1000); am_util_stdio_printf("i2c_cnt:%d \n",i2c_cnt++); }; }
这里I2C的接口协议属于标准协议,只需要自己完成函数封装即可,这里不做赘述了。
三 效果展示:
从打印信息来看,数据能完整读取展现出来,如下图所示:

这里接下来就是根据实际的应用,来做不同的算法处理了。
作者:虚生 出处:https://www.cnblogs.com/dylancao/ 以音频和传感器算法为核心的智能可穿戴产品解决方案提供商 ,提供可穿戴智能软硬件解决方案的设计,开发和咨询服务。 勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |
![]() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战