功能:集成SU-03T语音模块,完善UI代码文档

- 在CMakeLists.txt中添加SU-03T语音模块依赖。
- 在main.cpp中实现SU-03T接收回调函数,处理接收消息。
- 完善各UI源文件文档,包括动作、屏幕和字体,明确模块作用与数据流向。
- 更新主应用逻辑,初始化并启动SU-03T接收器。
- 修改过程中确保兼容性,保留原有接口。
This commit is contained in:
Wang Beihong
2026-04-22 01:06:10 +08:00
parent 65de57a49c
commit ffdb7065e3
46 changed files with 1341 additions and 12 deletions

View File

@@ -1,3 +1,12 @@
/*
* 文件: components/bh1750/bh1750.c
* 角色: BH1750 光照传感器驱动封装
* 说明:
* - 本文件用于实现当前模块的核心功能或接口定义。
* - 修改前请先确认该模块与其它任务/外设之间的数据流关系。
* - 涉及协议与硬件时,优先保持现有接口兼容,避免联调回归。
*/
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
@@ -25,6 +34,10 @@ typedef struct {
/**
* @brief 向 BH1750 写入一个字节的辅助函数
*/
/* 函数: bh1750_write_byte
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
static esp_err_t bh1750_write_byte(const bh1750_dev_t *const sens, const uint8_t byte)
{
return i2c_master_transmit(sens->i2c_handle, &byte, 1, pdMS_TO_TICKS(1000));
@@ -38,6 +51,10 @@ static esp_err_t bh1750_write_byte(const bh1750_dev_t *const sens, const uint8_t
* @param handle_ret [out] 返回创建好的设备句柄
* @return esp_err_t 成功返回 ESP_OK
*/
/* 函数: bh1750_create
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
esp_err_t bh1750_create(i2c_master_bus_handle_t i2c_bus, const uint8_t dev_addr, bh1750_handle_t *handle_ret)
{
esp_err_t ret = ESP_OK;
@@ -65,6 +82,10 @@ esp_err_t bh1750_create(i2c_master_bus_handle_t i2c_bus, const uint8_t dev_addr,
/**
* @brief 删除 BH1750 设备并释放资源
*/
/* 函数: bh1750_delete
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
esp_err_t bh1750_delete(bh1750_handle_t sensor)
{
bh1750_dev_t *sens = (bh1750_dev_t *) sensor;
@@ -78,6 +99,10 @@ esp_err_t bh1750_delete(bh1750_handle_t sensor)
/**
* @brief 进入掉电模式(低功耗)
*/
/* 函数: bh1750_power_down
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
esp_err_t bh1750_power_down(bh1750_handle_t sensor)
{
bh1750_dev_t *sens = (bh1750_dev_t *) sensor;
@@ -87,6 +112,10 @@ esp_err_t bh1750_power_down(bh1750_handle_t sensor)
/**
* @brief 唤醒并进入上电模式
*/
/* 函数: bh1750_power_on
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
esp_err_t bh1750_power_on(bh1750_handle_t sensor)
{
bh1750_dev_t *sens = (bh1750_dev_t *) sensor;
@@ -97,6 +126,10 @@ esp_err_t bh1750_power_on(bh1750_handle_t sensor)
* @brief 设置测量时间倍率 (MTreg)
* 用于改变传感器的测量灵敏度
*/
/* 函数: bh1750_set_measure_time
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
esp_err_t bh1750_set_measure_time(bh1750_handle_t sensor, const uint8_t measure_time)
{
bh1750_dev_t *sens = (bh1750_dev_t *) sensor;
@@ -116,6 +149,10 @@ esp_err_t bh1750_set_measure_time(bh1750_handle_t sensor, const uint8_t measure_
/**
* @brief 设置测量模式(连续测量或单词测量,以及分辨率选择)
*/
/* 函数: bh1750_set_measure_mode
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
esp_err_t bh1750_set_measure_mode(bh1750_handle_t sensor, const bh1750_measure_mode_t cmd_measure)
{
bh1750_dev_t *sens = (bh1750_dev_t *) sensor;
@@ -129,6 +166,10 @@ esp_err_t bh1750_set_measure_mode(bh1750_handle_t sensor, const bh1750_measure_m
* @param data [out] 返回转换后的光照强度值 (单位: Lux)
* @return esp_err_t
*/
/* 函数: bh1750_get_data
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
esp_err_t bh1750_get_data(bh1750_handle_t sensor, float *const data)
{
bh1750_dev_t *sens = (bh1750_dev_t *) sensor;

View File

@@ -1,3 +1,12 @@
/*
* 文件: components/bh1750/bh1750_use.c
* 角色: BH1750 光照传感器驱动封装
* 说明:
* - 本文件用于实现当前模块的核心功能或接口定义。
* - 修改前请先确认该模块与其它任务/外设之间的数据流关系。
* - 涉及协议与硬件时,优先保持现有接口兼容,避免联调回归。
*/
#include <stdio.h>
#include "esp_log.h"
#include "driver/i2c_master.h"
@@ -11,11 +20,19 @@ static const char *TAG = "BH1750_USE";
static i2c_master_bus_handle_t s_i2c_bus_handle = NULL;
static bh1750_handle_t s_bh1750_handle = NULL;
/* 函数: bh1750_get_i2c_bus_handle
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
i2c_master_bus_handle_t bh1750_get_i2c_bus_handle(void)
{
return s_i2c_bus_handle;
}
/* 函数: bh1750_user_init
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
esp_err_t bh1750_user_init(void)
{
if (s_i2c_bus_handle == NULL) {
@@ -38,6 +55,10 @@ esp_err_t bh1750_user_init(void)
return bh1750_power_on(s_bh1750_handle);
}
/* 函数: bh1750_user_read
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
esp_err_t bh1750_user_read(float *lux)
{
if (s_bh1750_handle == NULL) return ESP_ERR_INVALID_STATE;
@@ -48,6 +69,10 @@ esp_err_t bh1750_user_read(float *lux)
return bh1750_get_data(s_bh1750_handle, lux);
}
/* 函数: bh1750_user_deinit
* 作用: 执行模块内与函数名对应的业务逻辑。
* 重点: 关注输入合法性、返回码与并发安全。
*/
void bh1750_user_deinit(void)
{
if (s_bh1750_handle) {

View File

@@ -1,3 +1,12 @@
/*
* 文件: components/bh1750/include/bh1750.h
* 角色: BH1750 光照传感器驱动封装
* 说明:
* - 本文件用于实现当前模块的核心功能或接口定义。
* - 修改前请先确认该模块与其它任务/外设之间的数据流关系。
* - 涉及协议与硬件时,优先保持现有接口兼容,避免联调回归。
*/
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*

View File

@@ -1,3 +1,12 @@
/*
* 文件: components/bh1750/include/bh1750_use.h
* 角色: BH1750 光照传感器驱动封装
* 说明:
* - 本文件用于实现当前模块的核心功能或接口定义。
* - 修改前请先确认该模块与其它任务/外设之间的数据流关系。
* - 涉及协议与硬件时,优先保持现有接口兼容,避免联调回归。
*/
#ifndef BH1750_USE_H
#define BH1750_USE_H