2026-02-26 17:20:03 +08:00
|
|
|
|
#ifndef __USER_TASKSINIT_H__
|
|
|
|
|
|
#define __USER_TASKSINIT_H__
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
extern "C" {
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#include "FreeRTOS.h"
|
|
|
|
|
|
#include "cmsis_os.h"
|
|
|
|
|
|
|
2026-03-19 11:18:06 +08:00
|
|
|
|
// 用于数据传输的结构体,包含电压和电流
|
|
|
|
|
|
// 流向为 MessageSendTask -> LVGLtask
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
|
float voltage; // 电压 (V)
|
|
|
|
|
|
float current; // 电流 (uA)
|
|
|
|
|
|
} PowerData_t;
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个标志位,表示 ADC 数据已经准备好,在ADC DMA中断中被置位
|
|
|
|
|
|
// 在 MessageSendTask 中等待这个标志位,表示可以发送 ADC 数据了
|
2026-03-25 16:00:47 +08:00
|
|
|
|
#define FLAG_ADC_HALF_READY 0x0001U // 0000 0001 ADC 半满
|
|
|
|
|
|
#define FLAG_ADC_FULL_READY 0x0002U // 0000 0010 ADC 全满
|
|
|
|
|
|
#define FLAG_USB_UPDATE_REQ 0x0004U // 0000 0100 USB 请求升级
|
2026-03-15 11:20:09 +08:00
|
|
|
|
|
2026-03-19 11:18:06 +08:00
|
|
|
|
extern osThreadId_t MessageSendTaskHandle;
|
2026-03-25 16:00:47 +08:00
|
|
|
|
extern osThreadId_t MessageReceiveTaskHandle;
|
2026-03-15 11:20:09 +08:00
|
|
|
|
|
2026-02-26 17:20:03 +08:00
|
|
|
|
extern osMessageQueueId_t Key_MessageQueue;
|
|
|
|
|
|
extern osMessageQueueId_t PD_cmd_MessageQueue;
|
|
|
|
|
|
extern osMessageQueueId_t PD_handle_event_MsgQueue;
|
2026-03-19 11:18:06 +08:00
|
|
|
|
extern osMessageQueueId_t PowerDataQueue;
|
2026-02-26 17:20:03 +08:00
|
|
|
|
|
|
|
|
|
|
void User_Tasks_Init(void);
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|