refactor(gbk_text): 重构GBK文本常量定义并优化命名

移除过时的文本定义,使用更简洁通用的名称替换原有特定功能的文本
常量,并更新相应的长度定义和别名映射。

BREAKING CHANGE: 原有的特定功能文本常量已被移除,需使用新的通
用名称进行访问。
```
This commit is contained in:
2026-02-17 18:55:34 +08:00
parent 09c881b4a6
commit 4c37261cc8
12 changed files with 958 additions and 509 deletions

View File

@@ -19,9 +19,10 @@
/* Includes ------------------------------------------------------------------*/
#include "FreeRTOS.h"
#include "task.h"
#include "main.h"
#include "cmsis_os.h"
#include "main.h"
#include "task.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
@@ -78,50 +79,48 @@ static uint8_t time_state = 0; /* TIME_KEY 时间状态 */
/* Definitions for defaultTask */
osThreadId_t defaultTaskHandle;
const osThreadAttr_t defaultTask_attributes = {
.name = "defaultTask",
.stack_size = 128 * 4,
.priority = (osPriority_t) osPriorityNormal,
.name = "defaultTask",
.stack_size = 128 * 4,
.priority = (osPriority_t)osPriorityNormal,
};
/* Definitions for KeyTask */
osThreadId_t KeyTaskHandle;
const osThreadAttr_t KeyTask_attributes = {
.name = "KeyTask",
.stack_size = 512 * 4,
.priority = (osPriority_t) osPriorityRealtime,
.name = "KeyTask",
.stack_size = 512 * 4,
.priority = (osPriority_t)osPriorityRealtime,
};
/* Definitions for Sensor_Task */
osThreadId_t Sensor_TaskHandle;
const osThreadAttr_t Sensor_Task_attributes = {
.name = "Sensor_Task",
.stack_size = 512 * 4,
.priority = (osPriority_t) osPriorityHigh7,
.name = "Sensor_Task",
.stack_size = 512 * 4,
.priority = (osPriority_t)osPriorityHigh7,
};
/* Definitions for Motor_Task */
osThreadId_t Motor_TaskHandle;
const osThreadAttr_t Motor_Task_attributes = {
.name = "Motor_Task",
.stack_size = 512 * 4,
.priority = (osPriority_t) osPriorityNormal1,
.name = "Motor_Task",
.stack_size = 512 * 4,
.priority = (osPriority_t)osPriorityNormal1,
};
/* Definitions for Screen_Tsak */
osThreadId_t Screen_TsakHandle;
const osThreadAttr_t Screen_Tsak_attributes = {
.name = "Screen_Tsak",
.stack_size = 1024 * 4,
.priority = (osPriority_t) osPriorityNormal,
.name = "Screen_Tsak",
.stack_size = 1024 * 4,
.priority = (osPriority_t)osPriorityNormal,
};
/* Definitions for MP3_Play_Task */
osThreadId_t MP3_Play_TaskHandle;
const osThreadAttr_t MP3_Play_Task_attributes = {
.name = "MP3_Play_Task",
.stack_size = 512 * 4,
.priority = (osPriority_t) osPriorityNormal,
.name = "MP3_Play_Task",
.stack_size = 512 * 4,
.priority = (osPriority_t)osPriorityNormal,
};
/* Definitions for init_ok */
osEventFlagsId_t init_okHandle;
const osEventFlagsAttr_t init_ok_attributes = {
.name = "init_ok"
};
const osEventFlagsAttr_t init_ok_attributes = {.name = "init_ok"};
/* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN FunctionPrototypes */
@@ -138,10 +137,10 @@ void MP3(void *argument);
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
/**
* @brief FreeRTOS initialization
* @param None
* @retval None
*/
* @brief FreeRTOS initialization
* @param None
* @retval None
*/
void MX_FREERTOS_Init(void) {
/* USER CODE BEGIN Init */
easylogger_init(); /* 初始化 EasyLogger */
@@ -167,7 +166,8 @@ void MX_FREERTOS_Init(void) {
/* Create the thread(s) */
/* creation of defaultTask */
defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);
defaultTaskHandle =
osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);
/* creation of KeyTask */
KeyTaskHandle = osThreadNew(Key, NULL, &KeyTask_attributes);
@@ -195,7 +195,6 @@ void MX_FREERTOS_Init(void) {
/* USER CODE BEGIN RTOS_EVENTS */
/* USER CODE END RTOS_EVENTS */
}
/* USER CODE BEGIN Header_StartDefaultTask */
@@ -205,30 +204,37 @@ void MX_FREERTOS_Init(void) {
* @retval None
*/
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void *argument)
{
void StartDefaultTask(void *argument) {
/* USER CODE BEGIN StartDefaultTask */
// 启动TIM1的PWM输出
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); // 启动PWM输出加热
Screen_Init();
Screen_DrawText16_GBK(1, 30, text_device_loading, text_device_loading_LEN,
TEXT_COLOR);
// Screen_DrawText16_GBK(1, 30, text_device_loading, text_device_loading_LEN,
// TEXT_COLOR);
Screen_ShowInZone(1, text_loading, text_loading_LEN);
// 等待bit0+bit1+bit2都被设置所有模块初始化完成
uint32_t flags = osEventFlagsWait(
init_okHandle, // 目标事件标志组
(1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4), // 要等待的bit位多个用|拼接)
osFlagsWaitAll, // 等待所有bit都被设置
osWaitForever // 永久等待(直到满足条件)
);
if(flags == ((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4))) {
Screen_ClearContent();
// 所有初始化完成,开始执行按摩逻辑
Screen_DrawText16V_GBK(1, 30, text_stop_massage, text_stop_massage_LEN, 15);
}
// 等待bit0+bit1+bit2都被设置所有模块初始化完成
uint32_t flags =
osEventFlagsWait(init_okHandle, // 目标事件标志组
(1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) |
(1 << 4), // 等待bit位(多个用|拼接)
osFlagsWaitAll, // 等待所有bit都被设置
osWaitForever // 永久等待(直到满足条件)
);
elog_d("Init","完成所有的初始化");
if (flags == ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4))) {
// 所有初始化完成,开始执行按摩逻辑
// Screen_DrawText16V_GBK(1, 30, text_stop_massage, text_stop_massage_LEN, 15);
Screen_ShowInZone(1, text_ended, text_ended_LEN);
Screen_ShowInZone(2, text_massage_off, text_massage_off_LEN);
Screen_ShowInZone(3, text_heat_off,text_heat_off_LEN);
}
elog_d("Init", "完成所有的初始化");
/* Infinite loop */
for (;;) {
@@ -248,10 +254,9 @@ void StartDefaultTask(void *argument)
* @retval None
*/
/* USER CODE END Header_Key */
void Key(void *argument)
{
void Key(void *argument) {
/* USER CODE BEGIN Key */
elog_d("Init", "Key task started");
elog_d("Init", "Key task started");
/* 防抖轮询实现四个低电平有效按键检测 */
GPIO_TypeDef *key_ports[4] = {M__KEY_GPIO_Port, M__KEYC7_GPIO_Port,
HOT_KEY_GPIO_Port, TIME_KEY_GPIO_Port};
@@ -263,7 +268,7 @@ void Key(void *argument)
uint8_t pressed[4] = {0};
const uint8_t THRESH = 3; /* 3 * 10ms = 30ms 防抖 */
osEventFlagsSet(init_okHandle, 1<<0); // 设置初始化完成标志
osEventFlagsSet(init_okHandle, 1 << 0); // 设置初始化完成标志
for (;;) {
for (int i = 0; i < 4; i++) {
@@ -296,13 +301,11 @@ void Key(void *argument)
* @retval None
*/
/* USER CODE END Header_Sensor */
void Sensor(void *argument)
{
void Sensor(void *argument) {
/* USER CODE BEGIN Sensor */
elog_d("Init", "Sensor task started");
/* 按键处理任务 - 按键状态切换控制 */
osEventFlagsSet(init_okHandle, 1<<1);
osEventFlagsSet(init_okHandle, 1 << 1);
/* Infinite loop */
for (;;) {
@@ -332,9 +335,13 @@ void Sensor(void *argument)
if (key_pressed & (1 << 2)) {
/* HOT_KEY 按下:切换热功能 */
hot_state = !hot_state;
elog_d("HOT", "加热的状态: %d", hot_state);
HAL_GPIO_WritePin(HOT_GPIO_Port, HOT_Pin,
hot_state ? GPIO_PIN_SET : GPIO_PIN_RESET);
if (hot_state) {
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 300);
elog_d("Hot", "设置PWM为300");
} else {
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 0); /* 关闭加热 */
elog_d("Hot", "设置PWM为0");
}
}
/* ===== TIME_KEY (bit3) 控制 ===== */
@@ -360,17 +367,14 @@ void Sensor(void *argument)
* @retval None
*/
/* USER CODE END Header_Motor */
void Motor(void *argument)
{
void Motor(void *argument) {
/* USER CODE BEGIN Motor */
elog_d("Init", "Motor task started");
/* 电机驱动初始化 */
Motor_Init();
osEventFlagsSet(init_okHandle, 1<<2);
osEventFlagsSet(init_okHandle, 1 << 2);
/* Infinite loop */
for (;;) {
@@ -397,61 +401,55 @@ void Motor(void *argument)
* @retval None
*/
/* USER CODE END Header_Screen */
void Screen(void *argument)
{
void Screen(void *argument) {
/* USER CODE BEGIN Screen */
elog_d("Init", "Screen task started");
osEventFlagsSet(init_okHandle, 1<<3);
osEventFlagsSet(init_okHandle, 1 << 3);
// HAL_UART_Transmit(&huart1, (uint8_t *)buf, strlen(buf), HAL_MAX_DELAY);
/* Infinite loop */
for (;;) {
if (hot_state) {
}
}
/* USER CODE END Screen */
}
/* USER CODE BEGIN Header_MP3 */
/**
* @brief Function implementing the MP3_Play_Task thread.
* @param argument: Not used
* @retval None
*/
* @brief Function implementing the MP3_Play_Task thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_MP3 */
void MP3(void *argument)
{
void MP3(void *argument) {
/* USER CODE BEGIN MP3 */
elog_d("Init", "MP3 task started");
uint8_t init_cmd1[] = {0x7E, 0xFF, 0x06, 0x06, 0x00, 0x00, 0x1E, 0xFE, 0xD7, 0xEF}; // 开启声音
uint8_t init_cmd2[] = {0x7E, 0xFF, 0x06, 0x09, 0x00, 0x00, 0x02, 0xFE, 0xF0, 0xEF}; // TF卡
uint8_t play_cmd[] = {0x7E, 0xFF, 0x06, 0x12, 0x00, 0x00, 0x01, 0xFE, 0xE8, 0xEF}; // 播放文件1
uint8_t init_cmd1[] = {0x7E, 0xFF, 0x06, 0x06, 0x00,
0x00, 0x1E, 0xFE, 0xD7, 0xEF}; // 开启声音
uint8_t init_cmd2[] = {0x7E, 0xFF, 0x06, 0x09, 0x00,
0x00, 0x02, 0xFE, 0xF0, 0xEF}; // TF卡
uint8_t play_cmd[] = {0x7E, 0xFF, 0x06, 0x12, 0x00,
0x00, 0x01, 0xFE, 0xE8, 0xEF}; // 播放文件1
// 等待模块上电稳定
osDelay(2000);
// 发送初始化命令1等待模块 ACK
HAL_UART_Transmit(&huart3, init_cmd1, sizeof(init_cmd1), 100);
// 等待模块上电稳定
osDelay(2000);
// 发送初始化命令1等待模块 ACK
HAL_UART_Transmit(&huart3, init_cmd1, sizeof(init_cmd1), 100);
// 发送初始化命令2
HAL_UART_Transmit(&huart3, init_cmd2, sizeof(init_cmd2), 100);
elog_i("MP3", "模块初始化完成");
osEventFlagsSet(init_okHandle, 1<<4);
// 发送初始化命令2
HAL_UART_Transmit(&huart3, init_cmd2, sizeof(init_cmd2), 100);
elog_i("MP3", "模块初始化完成");
osEventFlagsSet(init_okHandle, 1 << 4);
/* Infinite loop */
for(;;)
{
for (;;) {
// 发送播放命令
HAL_UART_Transmit(&huart3, play_cmd, sizeof(play_cmd), 100);
HAL_UART_Transmit(&huart3, play_cmd, sizeof(play_cmd), 100);
osDelay(10000);
}
@@ -462,4 +460,3 @@ void MP3(void *argument)
/* USER CODE BEGIN Application */
/* USER CODE END Application */