ESP32-S3 吊坠设备固件,集成火山引擎 RTC 语音助手、蓝牙配网、 VEML7700 环境光传感器驱动及石头同频匹配交友功能。 VEML7700 驱动: - 基于 ESP-IDF i2c_master API 实现,复用项目 I2cDevice 基类 - 支持 ALS + White 双通道、自动量程、Vishay 非线性校正 - 3 次采样取中位数过滤偶发异常 石头同频匹配算法(双维度): - 维度1:光谱比值 ALS/White(石头固有光学特征,不随光照强度变化) - 维度2:亮度等级(5级对数划分,排除极端环境差异) - 比值阈值 15%,实测同石头姿势变化波动 1.6%~9.6%,安全余量充足 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
99 lines
2.4 KiB
C
99 lines
2.4 KiB
C
#ifndef QMI8658A_H
|
|
#define QMI8658A_H
|
|
|
|
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
enum Qmi8658AReg
|
|
{
|
|
Register_WhoAmI = 0,
|
|
Register_Revision,
|
|
Register_Ctrl1,
|
|
Register_Ctrl2,
|
|
Register_Ctrl3,
|
|
Register_Reserved,
|
|
Register_Ctrl5,
|
|
Register_Reserved1,
|
|
Register_Ctrl7,
|
|
Register_Ctrl8,
|
|
Register_Ctrl9,
|
|
Register_Cal1_L = 11,
|
|
Register_Cal1_H,
|
|
Register_Cal2_L,
|
|
Register_Cal2_H,
|
|
Register_Cal3_L,
|
|
Register_Cal3_H,
|
|
Register_Cal4_L,
|
|
Register_Cal4_H,
|
|
Register_FifoWmkTh = 19,
|
|
Register_FifoCtrl = 20,
|
|
Register_FifoCount = 21,
|
|
Register_FifoStatus = 22,
|
|
Register_FifoData = 23,
|
|
Register_StatusInt = 45,
|
|
Register_Status0,
|
|
Register_Status1,
|
|
Register_Timestamp_L = 48,
|
|
Register_Timestamp_M,
|
|
Register_Timestamp_H,
|
|
Register_Tempearture_L = 51,
|
|
Register_Tempearture_H,
|
|
Register_Ax_L = 53,
|
|
Register_Ax_H,
|
|
Register_Ay_L,
|
|
Register_Ay_H,
|
|
Register_Az_L,
|
|
Register_Az_H,
|
|
Register_Gx_L = 59,
|
|
Register_Gx_H,
|
|
Register_Gy_L,
|
|
Register_Gy_H,
|
|
Register_Gz_L,
|
|
Register_Gz_H,
|
|
Register_COD_Status = 70,
|
|
Register_dQW_L = 73,
|
|
Register_dQW_H,
|
|
Register_dQX_L,
|
|
Register_dQX_H,
|
|
Register_dQY_L,
|
|
Register_dQY_H,
|
|
Register_dQZ_L,
|
|
Register_dQZ_H,
|
|
Register_dVX_L,
|
|
Register_dVX_H,
|
|
Register_dVY_L,
|
|
Register_dVY_H,
|
|
Register_dVZ_L,
|
|
Register_dVZ_H,
|
|
|
|
Register_TAP_Status = 89,
|
|
Register_Step_Cnt_L = 90,
|
|
Register_Step_Cnt_M = 91,
|
|
Register_Step_Cnt_H = 92,
|
|
|
|
Register_Reset = 96
|
|
};
|
|
|
|
//详细说明参照note.md Ctrl9详细命令说明
|
|
enum Ctrl9Command
|
|
{
|
|
Ctrl9_Cmd_Ack = 0X00,
|
|
Ctrl9_Cmd_RstFifo = 0X04,
|
|
Ctrl9_Cmd_ReqFifo = 0X05,//Get FIFO data from Device
|
|
Ctrl9_Cmd_WoM_Setting = 0x08,// 设置并启用运动唤醒
|
|
Ctrl9_Cmd_AccelHostDeltaOffset = 0x09,//更改加速度计偏移
|
|
Ctrl9_Cmd_GyroHostDeltaOffset = 0x0A,//更改陀螺仪偏移
|
|
Ctrl9_Cmd_CfgTap = 0x0C, //配置TAP检测
|
|
Ctrl9_Cmd_CfgPedometer = 0x0D,//配置计步器
|
|
Ctrl9_Cmd_Motion = 0x0E,//配置任何运动/无运动/显着运动检测
|
|
Ctrl9_Cmd_RstPedometer = 0x0F,//重置计步器计数(步数)
|
|
Ctrl9_Cmd_CopyUsid = 0x10,//将 USID 和 FW 版本复制到 UI 寄存器
|
|
Ctrl9_Cmd_SetRpu = 0x11,//配置 IO 上拉
|
|
Ctrl9_Cmd_AHBClockGating = 0x12,//内部 AHB 时钟门控开关
|
|
Ctrl9_Cmd_OnDemandCalivration = 0xA2,//陀螺仪按需校准
|
|
Ctrl9_Cmd_ApplyGyroGains = 0xAA//恢复保存的陀螺仪增益
|
|
};
|
|
|
|
|
|
#endif |