Rdzleo 93f0e19d1d 初始化项目:精灵吊坠 RTC 语音助手 + VEML7700 石头同频匹配
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>
2026-04-01 11:43:57 +08:00

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