前言
最近关于MPU6050做了个小玩意,是关于DL1414显示管的,这个显示管挺有意思,能显示四位ASCII的字符,但是内置字库比较少,猜测是80年代把一些常用的字给做成了显示管,这样驱动显示一体,方便更换。
我做的这个现在还在最后的编写过程中,板子改了好几版,之前的版本因为强度和厚度没有达到预期而让重新规划。放张照片尝尝鲜:
采用TypeC接口 / STM32T8
MPU6050
首先,确定一下用MPU6050的步骤,因为我要用三轴的加速度,所以我要调用6050内部的dmp来确定 模块的Pitch、Roll、Yaw 三个数据,所以遵循了以下的步骤:
1.调用I2C
2.初始化MPU6050,初始化DMP
3.把获取的数据进行各种处理。
可以看到AD0用来更改从机地址然而,当我对上一个版本进行编程的时候,发现MPU6050和DS3231 的IIC地址冲突了,由于DS3231不能改从机地址,所以看到MPU6050的AD0可以更改从机地址时,心里想着还好,至少之后的工作路线不迷茫,还是有方向的。
看了很多关于修改从机地址的一些贴子,都是流于表面,仅仅是让AD0接 , 之后地址从 0x68
改为 0x69
进行了描述。
但是进过我测试,发现了三个要修改的地方,都是其他帖子里没有提到的。
寄存器
可以看到,WHO_AM_I寄存器的
0x68
是1到7位,而AD0控制的是最后一位,即BIT1位,而不是帖子里说的最后一位BIT0。
即 11010000
(H)—> 0xD0
11010010
(H)—> 0xD2
更巧的是,不清楚MPU6050寄存器的初学者容易将寄存器地址和从机地址搞混,导致不输出dmp姿态角。例如 i2cRead(0x69,0x75,1,temp)
这个函数,定义是 int i2cRead(uint8_t addr, uint8_t reg, uint8_t len, uint8_t *buf)
,在AD0接高电平的情况下,从机地址是 0x69
,而不是默认的 0x68
.
修改结构体
const struct hw_s hw={
0x69, //addr//这里修改为0X69
1024, //max_fifo
118, //num_reg
340, //temp_sens
-521, //temp_offset
256 //bank_size
};
全局搜索这个结构体,修改提示处即可。
修改宏定义
在mpu6050.h头文件里可以找到这两条宏定义:
#define devAddr 0xD2 //AD0低电平时此处是0xD1
#define MPU6050_ADDRESS_AD0_LOW 0x68 // address pin low (GND)
#define MPU6050_ADDRESS_AD0_HIGH 0x69 // address pin high (VCC)
#define MPU6050_DEFAULT_ADDRESS MPU6050_ADDRESS_AD0_HIGH //修改成HIGH
修改DMP初始化函数
在DMP.c文件中DMP_Init()函数:
i2cRead(0x69,0x75,1,temp); //第一个形参改为0x69寄存器
DS3231
这里用到高精度时钟芯片DS3231MZ+,是低成本、高精度 I2C实时时钟,具有集成的温补晶振(TCXO)和晶体,SOP-8
封装,包含电池输入端,断开主 电源时仍可保持精确的计时。
集成晶振提高了器件的长期精确度,并减少了生产线的元件数量。更加小巧,节省空间。推荐给大家使用,大家可以在空间有限的项目中选型这个封装的DS3231。
另外,关于电池,用的是小号的充电电池,通过一个二极管确定是充电还是放电方向。当接上TypeC时,就能给主电池和备用电池充电,保证DS3231不断电。
CH340K
CH340K
是兼容 USB V2.0的一款串口芯片,它特点挺多,封装是ESSOP10。
特点也挺多,很方便的去移植:
● 计算机端 Windows 操作系统下的串口应用程序完全兼容,无需修改。
● 硬件全双工串口,内置收发缓冲区,支持通讯波特率 50bps~2Mbps。
● 支持常用的 MODEM 联络信号 RTS、DTR、DCD、RI、DSR、CTS。
● 通过外加电平转换器件,提供 RS232、RS485、RS422 等接口。
● 支持 5V 电源电压和 3.3V 电源电压甚至 3V 电源电压。
● CH340K内置时钟,无需外部晶振。
而且配一个串口的话,对客户来说,也方便升级。TypeC向下兼容USB2.0,所以很方便的使用全速2.0接口,方便更新系统版本。
CH340K还拥有 RTS
和 DTR
,可以通过两个信号电平实现一键下载。
PS:这里参考了正点原子的一键下载电路。
4 条评论
作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。
研究方法科学,数据支撑充分,结论可靠。
真好呢
想想你的文章写的特别好https://www.jiwenlaw.com/