mirror of
https://gitee.com/dlmu-cone/tronone-h7-scaffold
synced 2026-07-24 03:27:45 +08:00
tft lvgl test ok
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
#include "ins_task.h"
|
||||
#include "buzzer.h"
|
||||
#include "tft.h"
|
||||
#include "prts.h"
|
||||
// #include "remoteTask.h"
|
||||
//
|
||||
// #include "bsp_dwt.h"
|
||||
@@ -46,6 +47,8 @@
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PD */
|
||||
#define PRTS_STATUS_UPDATE_PERIOD_MS 50U
|
||||
#define PRTS_TASK_SLEEP_CAP_MS 2U
|
||||
|
||||
/* USER CODE END PD */
|
||||
|
||||
@@ -158,6 +161,19 @@ const osThreadAttr_t buzzer_attributes = {
|
||||
osThreadId buzzerHandle;
|
||||
extern void buzzerTask(void const *argument);
|
||||
|
||||
static StackType_t prtsTaskStack[1024];
|
||||
static StaticTask_t prtsTaskControlBlock;
|
||||
const osThreadAttr_t prts_attributes = {
|
||||
.name = "prts",
|
||||
.cb_mem = &prtsTaskControlBlock,
|
||||
.cb_size = sizeof(prtsTaskControlBlock),
|
||||
.stack_mem = prtsTaskStack,
|
||||
.stack_size = sizeof(prtsTaskStack),
|
||||
.priority = osPriorityBelowNormal
|
||||
};
|
||||
osThreadId_t prtsHandle;
|
||||
void StartPRTSTask(void *argument);
|
||||
|
||||
/* USER CODE END FunctionPrototypes */
|
||||
|
||||
void StartDefaultTask(void *argument);
|
||||
@@ -268,6 +284,7 @@ void MX_FREERTOS_Init(void) {
|
||||
// 创建线程
|
||||
daemonHandle = osThreadNew(StartDaemonTask, NULL, &daemon_attributes); // <--- 换成新的函数名
|
||||
buzzerHandle = osThreadNew(buzzerTask, NULL, &buzzer_attributes);
|
||||
prtsHandle = osThreadNew(StartPRTSTask, NULL, &prts_attributes);
|
||||
/* USER CODE END RTOS_THREADS */
|
||||
|
||||
/* USER CODE BEGIN RTOS_EVENTS */
|
||||
@@ -289,15 +306,9 @@ __weak void StartDefaultTask(void *argument)
|
||||
MX_USB_DEVICE_Init();
|
||||
/* USER CODE BEGIN StartDefaultTask */
|
||||
/* Infinite loop */
|
||||
TFT_Init();
|
||||
static uint32_t tft_refresh_tick = 0U;
|
||||
for (;;)
|
||||
{
|
||||
if ((tft_refresh_tick++ % 100U) == 0U)
|
||||
{
|
||||
TFT_ShowStatus(BMI088.Temperature, RobotMode);
|
||||
}
|
||||
osDelay(1);
|
||||
osDelay(1000);
|
||||
}
|
||||
/* USER CODE END StartDefaultTask */
|
||||
}
|
||||
@@ -479,5 +490,52 @@ __attribute__((noreturn)) void StartDaemonTask(void *argument)
|
||||
|
||||
// 注意:把你原来写在 freertos.c 里的那个 __weak void DaemonTask() 整个删掉,防止干扰!
|
||||
|
||||
__attribute__((noreturn)) void StartPRTSTask(void *argument)
|
||||
{
|
||||
(void) argument;
|
||||
|
||||
bool prts_ok = PRTS_Init();
|
||||
uint32_t refresh_ms = PRTS_STATUS_UPDATE_PERIOD_MS;
|
||||
|
||||
if (!prts_ok)
|
||||
{
|
||||
TFT_Init();
|
||||
}
|
||||
|
||||
for (;;)
|
||||
{
|
||||
uint32_t delay_ms = PRTS_TASK_SLEEP_CAP_MS;
|
||||
|
||||
if (refresh_ms >= PRTS_STATUS_UPDATE_PERIOD_MS)
|
||||
{
|
||||
if (prts_ok)
|
||||
{
|
||||
PRTS_UpdateStatus(BMI088.Temperature, RobotMode);
|
||||
}
|
||||
else
|
||||
{
|
||||
TFT_ShowStatus(BMI088.Temperature, RobotMode);
|
||||
}
|
||||
refresh_ms = 0U;
|
||||
}
|
||||
|
||||
if (prts_ok)
|
||||
{
|
||||
delay_ms = PRTS_Task();
|
||||
if (delay_ms == 0U || delay_ms > PRTS_TASK_SLEEP_CAP_MS)
|
||||
{
|
||||
delay_ms = PRTS_TASK_SLEEP_CAP_MS;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
prts_ok = PRTS_Init();
|
||||
}
|
||||
|
||||
osDelay(delay_ms);
|
||||
refresh_ms += delay_ms;
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE END Application */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user