
1.SH3001六轴加速度传感器

2.
气压计测量高度;
磁力计: 无人机通常使用磁力计来确定航向,结合加速度计和陀螺仪的数据,实现精确的飞行控制和导航

六轴电信号经过:放大 解调 滤波 得到ADC值输出到寄存器里面
SH3001扩展有从I2C接口,可以通过从I2C接口控制磁力计ST480MC

3.SH3001引脚

4.电源模式设置,厂家只给我们提供了函数接口,没有提供寄存器说明,所以我们只要操作接口就行

SH3001寄存器
加速度计和陀螺仪的x,y,z的都由2个寄存器存储,低八位放在XXXX_XDATA_L里面,高八位放在XXXX_XDATA_H里面 所以加起来是16位,最高位为+-,所以将电信号转换为AD值是-32677~32677

芯片默认ID 0x61

温度传感器使能第七位, 4:5位为11设置为63HZ

室温

SENB:直接连接VCC,就是直接选择I2C协议,不选择SPI协议


0b 0(0x36)
写0 读1
写操作地址:0 0x6C 读操作地址:0 0X6D


1.读取N字节函数
读取最后一个数发送通过三目运算符发送0,

2.写N字节函数

1.调用iic_init()进行IIC接口初始化,myiic.c里面函数接口里面实现的

可以在MSDA,MSCL引出连接从设备 接磁力计ST480MC,组成9轴
SD0连接地,决定器件地址

第二个

器件地址
误差补偿系数结构体

带有补偿系数的去读取六轴数据 compen

误差补偿结构体和输出临时数据的临时变量

与PPT上不同的是会判断从机是否有应答信号,从机没有信号,就主机发送stop,返回FALSE;



读取对应版本 配置寄存器对应相对应的值

驱动启动, ADC的复位 CVA的复位都是厂家写好的,直接调用函数接口就好了

重置内部接口后,在初始化函数中设置
ACC加速度配置, GYRO陀螺仪配置, 温度配置

选择电源模式,官方只提供了接口

读取补偿系数,官方也给了接口

读取温度: 读取室温,读取实时温度,做运算,返回温度值

读取SH3001陀螺仪和加速度的原始数据函数 AD原始数据,没有做补偿


加速度补偿

陀螺仪补偿


sh3001_init()用lcd检测存在吗

补偿后的数据显示

补偿后的接口,这个得到的值是AD值,就是实际值


main.c中

用到STATUS和SENSOR这两个帧

版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/76806.html