您的位置:首页 > 文旅 > 美景 > 天津优化代理_如何做网页宣传_天猫seo搜索优化_无经验能做sem专员

天津优化代理_如何做网页宣传_天猫seo搜索优化_无经验能做sem专员

2025/7/10 8:48:52 来源:https://blog.csdn.net/weixin_74769854/article/details/146439836  浏览:    关键词:天津优化代理_如何做网页宣传_天猫seo搜索优化_无经验能做sem专员
天津优化代理_如何做网页宣传_天猫seo搜索优化_无经验能做sem专员

基于FreeRTOS的STM32四轴飞行器: 十一.MPU6050

  • 一.芯片介绍
  • 二.配置I2C
  • 三.编写驱动
  • 四.读取任务的测试
  • 五.MPU6050六轴数据的校准

一.芯片介绍

芯片应该放置在PCB中间,X Y轴原点,敏感度131表示范围越小越灵敏。理想状态放置在地面上X,Y,Z轴为0,即使地面极平有可能锡膏导致芯片倾斜。
在这里插入图片描述
在这里插入图片描述
AD0接地和接电源地址不一样:
在这里插入图片描述
寄存器介绍:
在这里插入图片描述
在这里插入图片描述

二.配置I2C

观察原理图:
在这里插入图片描述
CubeMX中配置I2C1,配置Master Features 速度为高速,400KHz,占空比33%。
在这里插入图片描述
配置PB3为下拉输入模式:
在这里插入图片描述

三.编写驱动

I2C协议中,地址需要左移1位,最低位表示读写方向
0 表示写操作,1 表示读操作,直接将查好寄存器的代码直接移植。
在这里插入图片描述
写入寄存器和读取寄存器函数:

/*** @description: 向指定的寄存器写入一个字节* @param {uint8_t} reg* @param {uint8_t} byte* @return {*}*/
void Inf_MPU6050_WriteReg(uint8_t reg, uint8_t byte)
{HAL_I2C_Mem_Write(&hi2c1,MPU6050_ADDR_W,reg,I2C_MEMADD_SIZE_8BIT,&byte,1,2000);
}/*** @description: 从指定的寄存器startReg写入多个字节* @param {uint8_t} startReg 开始寄存器地址* @param {uint8_t} *bytes 写的字节数据* @param {uint8_t} len 多少个字节* @return {*}*/
void Inf_MPU6050_WriteRegs(uint8_t startReg, uint8_t *bytes, uint8_t len)
{HAL_I2C_Mem_Write(&hi2c1,MPU6050_ADDR_W,startReg,I2C_MEMADD_SIZE_8BIT,bytes,len,2000);
}/*** @description: 从指定的寄存器读取一个字节* @param {uint8_t} reg* @return {*}*/
uint8_t Inf_MPU6050_ReadReg(uint8_t reg)
{uint8_t rByte = 0;HAL_I2C_Mem_Read(&hi2c1,MPU6050_ADDR_R,reg,I2C_MEMADD_SIZE_8BIT,&rByte,1,2000);return rByte;
}/*** @description: 从指定的寄存器读取多个字节* @param {uint8_t} startReg* @param {uint8_t} *bytes* @param {uint8_t} len* @return {*}*/
void Inf_MPU6050_ReadRegs(uint8_t startReg, uint8_t *bytes, uint8_t len)
{HAL_I2C_Mem_Read(&hi2c1,MPU6050_ADDR_R,startReg,I2C_MEMADD_SIZE_8BIT,bytes,len,2000);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com