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