还差一个mailbox=4的问题未解决

This commit is contained in:
RB 2025-04-12 22:15:48 +08:00
parent 16cebb3314
commit 20fdc15242
12 changed files with 6938 additions and 6924 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -207,7 +207,7 @@
<DebugFlag> <DebugFlag>
<trace>0</trace> <trace>0</trace>
<periodic>1</periodic> <periodic>1</periodic>
<aLwin>1</aLwin> <aLwin>0</aLwin>
<aCover>0</aCover> <aCover>0</aCover>
<aSer1>0</aSer1> <aSer1>0</aSer1>
<aSer2>0</aSer2> <aSer2>0</aSer2>
@ -751,7 +751,7 @@
<Group> <Group>
<GroupName>Middlewares/Lvgl</GroupName> <GroupName>Middlewares/Lvgl</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -104,7 +104,7 @@
- 通过 ST-Link 烧录固件到核心板。 - 通过 ST-Link 烧录固件到核心板。
2. **运行环境**: 2. **运行环境**:
- 供电方式: Micro USB 或外部电源。 - 供电方式: Micro USB 或外部电源。3.3v无法使用can
- 数据通信: 通过 CAN 和 UART 接口。 - 数据通信: 通过 CAN 和 UART 接口。
3. **调试**: 3. **调试**:

View File

@ -99,9 +99,9 @@ void Task_Disp(void *argument)
tick += delay_tick; /* 计算下一个唤醒时刻 */ tick += delay_tick; /* 计算下一个唤醒时刻 */
// 读取数据 // 读取数据
lv_timer_handler(); // LVGL的定时器处理函数 lv_timer_handler(); // LVGL的定时器处理函数
if (osMessageQueueGet(task_runtime.msgq.can.feedback.sick, &can, NULL, 100) == osOK)
if (osMessageQueueGet(task_runtime.msgq.can.feedback.sick, &can, NULL, 0) == osOK)
{ {
osKernelLock();
// 更新显示内容 // 更新显示内容
char buffer[16]; char buffer[16];
snprintf(buffer, sizeof(buffer), "Sick1: %d", can.sick.named.sick[0]); // 假设 sick.value1 是 Sick1 的值 snprintf(buffer, sizeof(buffer), "Sick1: %d", can.sick.named.sick[0]); // 假设 sick.value1 是 Sick1 的值
@ -115,6 +115,7 @@ void Task_Disp(void *argument)
snprintf(buffer, sizeof(buffer), "Sick4: %d", can.sick.named.sick[3]); // 假设 sick.value4 是 Sick4 的值 snprintf(buffer, sizeof(buffer), "Sick4: %d", can.sick.named.sick[3]); // 假设 sick.value4 是 Sick4 的值
lv_label_set_text(label_sick4, buffer); lv_label_set_text(label_sick4, buffer);
osKernelUnlock();
} }
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */ osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */

View File

@ -2,6 +2,7 @@
#include "task\user_task.h" #include "task\user_task.h"
#include "bsp\led.h" #include "bsp\led.h"
#include "bsp\buzzer.h" #include "bsp\buzzer.h"
#include "device\can.h"
/* Private typedef ---------------------------------------------------------- */ /* Private typedef ---------------------------------------------------------- */
/* Private define ----------------------------------------------------------- */ /* Private define ----------------------------------------------------------- */
@ -9,6 +10,7 @@
/* Private variables -------------------------------------------------------- */ /* Private variables -------------------------------------------------------- */
/* Private function --------------------------------------------------------- */ /* Private function --------------------------------------------------------- */
/* Exported functions ------------------------------------------------------- */ /* Exported functions ------------------------------------------------------- */
extern CAN_t can;
void Task_Monitor(void *argument) { void Task_Monitor(void *argument) {
(void)argument; // 消除未使用参数的警告 (void)argument; // 消除未使用参数的警告
@ -24,9 +26,17 @@ void Task_Monitor(void *argument) {
BSP_Buzzer_Set(0.9, 0.7f); BSP_Buzzer_Set(0.9, 0.7f);
HAL_Delay(300); HAL_Delay(300);
BSP_Buzzer_Stop(); BSP_Buzzer_Stop();
while (1) {
while (1) {
tick += delay_tick; /* 计算下一个唤醒时刻 */ tick += delay_tick; /* 计算下一个唤醒时刻 */
// 检测 mailbox 是否存在 0x04
if (can.mailbox.sick == 0x04) {
// 如果检测到 0x04重置 CAN 线程
osThreadTerminate(osThreadGetId()); // 终止当前线程
osThreadNew(Task_Can, NULL, NULL); // 创建新的 CAN 线程
}
// TODO: 监控任务的具体实现 // TODO: 监控任务的具体实现
BSP_LED_Set(BSP_LED_GREEN, BSP_LED_TAGGLE, 0); BSP_LED_Set(BSP_LED_GREEN, BSP_LED_TAGGLE, 0);
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */ osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */

View File

@ -18,7 +18,7 @@ const osThreadAttr_t attr_can = {
const osThreadAttr_t attr_disp = { const osThreadAttr_t attr_disp = {
.name = "Task_Disp", .name = "Task_Disp",
.priority = osPriorityRealtime, .priority = osPriorityRealtime,
.stack_size = 512 * 4, .stack_size = 1024 * 4,
}; };
const osThreadAttr_t attr_monitor = { const osThreadAttr_t attr_monitor = {

View File

@ -58,7 +58,7 @@ typedef struct {
// 任务频率和初始化延时 // 任务频率和初始化延时
#define TASK_FREQ_CAN (100u) #define TASK_FREQ_CAN (100u)
#define TASK_FREQ_DISP (200u) #define TASK_FREQ_DISP (1u)
#define TASK_FREQ_MONITOR (1u) #define TASK_FREQ_MONITOR (1u)
#define TASK_FREQ_PC (100u) #define TASK_FREQ_PC (100u)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 571 KiB