From a91f175e9eac6f44d058e94473b296d34230c071 Mon Sep 17 00:00:00 2001 From: Robofish <1683502971@qq.com> Date: Thu, 31 Jul 2025 04:46:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9delay?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/delay.h | 46 ++++++++++++++++++++++++++++------------------ bsp/describe.csv | 3 ++- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/bsp/delay.h b/bsp/delay.h index e7c68fc..1a95039 100644 --- a/bsp/delay.h +++ b/bsp/delay.h @@ -1,24 +1,34 @@ -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif - /* Includes ----------------------------------------------------------------- */ -#include +#include "bsp\delay.h" -#include "bsp/bsp.h" +#include +#include -/* Exported constants ------------------------------------------------------- */ -/* Exported macro ----------------------------------------------------------- */ -/* Exported types ----------------------------------------------------------- */ -/* Exported functions prototypes -------------------------------------------- */ -int8_t BSP_Delay(uint32_t ms); +/* Private define ----------------------------------------------------------- */ +/* Private macro ------------------------------------------------------------ */ +/* Private typedef ---------------------------------------------------------- */ +/* Private variables -------------------------------------------------------- */ +/* Private function -------------------------------------------------------- */ +/* Exported functions ------------------------------------------------------- */ +int8_t BSP_Delay(uint32_t ms) { + uint32_t tick_period = 1000u / osKernelGetTickFreq(); + uint32_t ticks = ms / tick_period; -int8_t BSP_Delay_Init(void); -int8_t BSP_Delay_us(uint32_t us); -int8_t BSP_Delay_ms(uint32_t ms); + switch (osKernelGetState()) { + case osKernelError: + case osKernelReserved: + case osKernelLocked: + case osKernelSuspended: + return BSP_ERR; -#ifdef __cplusplus + case osKernelRunning: + osDelay(ticks ? ticks : 1); + break; + + case osKernelInactive: + case osKernelReady: + HAL_Delay(ms); + break; + } + return BSP_OK; } -#endif diff --git a/bsp/describe.csv b/bsp/describe.csv index 0fee207..2788534 100644 --- a/bsp/describe.csv +++ b/bsp/describe.csv @@ -1,2 +1,3 @@ uart,要求开启dma和中断 -can,要求开启can的中断 \ No newline at end of file +can,要求开启can的中断 +delay,暂时只有delay_ms函数 \ No newline at end of file