From 6f3b60685f9ce3f76a9efd8b73a6620fd0bc3c99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B6=E4=B8=AD=E6=96=AD=E5=BB=B6=E8=BF=9F=E7=9A=84RTOS?= Date: Thu, 19 Feb 2026 09:51:00 +0000 Subject: [PATCH] =?UTF-8?q?update=20Demo-Service/6=E3=80=81=E7=BB=BC?= =?UTF-8?q?=E5=90=88=E5=BA=94=E7=94=A8/comp=5Fusart.c.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 零中断延迟的RTOS --- Demo-Service/6、综合应用/comp_usart.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Demo-Service/6、综合应用/comp_usart.c b/Demo-Service/6、综合应用/comp_usart.c index 3dc608f0..151195ad 100644 --- a/Demo-Service/6、综合应用/comp_usart.c +++ b/Demo-Service/6、综合应用/comp_usart.c @@ -12,7 +12,7 @@ * @note 本例程仅以 STM32-HAL库 的应用为例,其它情形请用户自行做出调整。 * @author 迟凯峰 * @version V1.0.0 - * @date 2025.11.01 + * @date 2026.02.19 ******************************************************************************/ #if 1 /* 编译开关 */ @@ -67,7 +67,7 @@ static bool flag_uart1_send = false; /** * \brief 滴答钩子 * \details 依次查询各个标志,为真就清除标志,而后调用相应服务。 - * @note 此处应调用前缀为“t”的滴答服务。 + * \note 此处应调用前缀为“t”的滴答服务。 */ void tick_hook(void) MCUCFG_OSIT_ATTRIBUTE { @@ -90,7 +90,7 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) /* 用定时查询来控制发送分包间隔时间 */ #if (PENDSV_FIFO_FLAG == 1) /* FIFO服务 */ iTimQry_ms(tmid_uart1_send, pack_uart1_send); - #else /* FLAG服务 */// 定时服务仅时间关键,无需触发PendSV,而是在系统滴答中调用并执行服务。 + #else /* FLAG服务 */// 定时服务仅时间关键,无需触发PendSV,而是在 SysTick中断 中调用并执行服务。 flag_uart1_send = true; #endif } @@ -116,7 +116,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) /* 用定时中断来控制接收分包间隔时间,并提前解析(在下一包数据到来之前完成解析)*/ #if (PENDSV_FIFO_FLAG == 1) /* FIFO服务 */ iTimInt_ms(tmid_uart1_recv, pack_uart1_recv); - #else /* FLAG服务 */// 定时服务仅时间关键,无需触发PendSV,而是在系统滴答中调用并执行服务。 + #else /* FLAG服务 */// 定时服务仅时间关键,无需触发PendSV,而是在 SysTick中断 中调用并执行服务。 flag_uart1_recv = true; #endif } @@ -283,9 +283,11 @@ void XXX2_IRQHandler(void) // interrupt XXX2_VECTOR /** 启动钩子 */ void start_hook(void) { + /* 初始化串口1接收 */ uart1_recv.err = false; uart1_recv.p = uart1_recv.buff; HAL_UART_Receive_DMA(&huart1, (uint8_t *)uart1_recv.p, 1); + /* 启动任务 */// 所有定时任务均由 CosyOS 自动启动,无需用户启动。 uStartTask_Ready(task_1); uStartTask_Ready(task_2); }