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