From 83cf83d37790889e5bb3ebb365e8e536814a6256 Mon Sep 17 00:00:00 2001 From: Wenxue <wenxue.guo@avnet.com> Date: Tue, 02 Sep 2025 09:42:34 +0800 Subject: [PATCH] 定时器和蜂鸣器程序 --- Core/Src/board/miscdev.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 deletions(-) diff --git a/Core/Src/board/miscdev.c b/Core/Src/board/miscdev.c index bcb51f8..f5f96c5 100644 --- a/Core/Src/board/miscdev.c +++ b/Core/Src/board/miscdev.c @@ -215,3 +215,52 @@ return 0; } + +/* + *+----------------------------+ + *| Timer Buzzer/delay API | + *+----------------------------+ + */ +#include "tim.h" + +/* Max to 60000 us */ +void udelay(uint16_t us) +{ + uint16_t differ = 60000-us; + + HAL_TIM_Base_Start(&htim6); + + __HAL_TIM_SET_COUNTER(&htim6, differ); + + while( differ < 60000 ) + { + differ=__HAL_TIM_GET_COUNTER(&htim6); + } + + HAL_TIM_Base_Stop(&htim6); +} + + +void beep_start(uint16_t times, uint16_t interval) +{ + while( times-- ) + { + /* Start buzzer */ + if (HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4) != HAL_OK) + { + /* Starting Error */ + Error_Handler(); + } + + HAL_Delay(interval); + + /* Stop buzzer */ + if (HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4) != HAL_OK) + { + /* Starting Error */ + Error_Handler(); + } + + HAL_Delay(interval); + } +} -- Gitblit v1.9.1