还差一个mailbox=4的问题未解决
This commit is contained in:
parent
16cebb3314
commit
20fdc15242
@ -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
@ -104,7 +104,7 @@
|
|||||||
- 通过 ST-Link 烧录固件到核心板。
|
- 通过 ST-Link 烧录固件到核心板。
|
||||||
|
|
||||||
2. **运行环境**:
|
2. **运行环境**:
|
||||||
- 供电方式: Micro USB 或外部电源。
|
- 供电方式: Micro USB 或外部电源。(3.3v无法使用can)
|
||||||
- 数据通信: 通过 CAN 和 UART 接口。
|
- 数据通信: 通过 CAN 和 UART 接口。
|
||||||
|
|
||||||
3. **调试**:
|
3. **调试**:
|
||||||
|
@ -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); /* 运行结束,等待下一次唤醒 */
|
||||||
|
@ -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,11 +26,19 @@ 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; /* 计算下一个唤醒时刻 */
|
||||||
//TODO: 监控任务的具体实现
|
|
||||||
|
// 检测 mailbox 是否存在 0x04
|
||||||
|
if (can.mailbox.sick == 0x04) {
|
||||||
|
// 如果检测到 0x04,重置 CAN 线程
|
||||||
|
osThreadTerminate(osThreadGetId()); // 终止当前线程
|
||||||
|
osThreadNew(Task_Can, NULL, NULL); // 创建新的 CAN 线程
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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); /* 运行结束,等待下一次唤醒 */
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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 = {
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
BIN
img/IMG_9083.JPG
BIN
img/IMG_9083.JPG
Binary file not shown.
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 570 KiB |
BIN
img/IMG_9084.JPG
BIN
img/IMG_9084.JPG
Binary file not shown.
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 570 KiB |
BIN
img/IMG_9086.JPG
BIN
img/IMG_9086.JPG
Binary file not shown.
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 571 KiB |
Loading…
Reference in New Issue
Block a user