实现串口驱动,移植方便

This commit is contained in:
冯佳
2026-01-22 16:36:56 +08:00
parent 2ef4dac5bd
commit 51e8d79f78
151 changed files with 4064 additions and 11050 deletions

View File

@ -9,21 +9,11 @@
#include "delay.h"
/**
* @brief DWT cycle counter frequency in MHz
*/
static uint32_t delay_tick_freq = 0;
/**
* @brief Initialize delay module
*/
void delay_init(void) {
/* Get the DWT cycle counter frequency */
delay_tick_freq = HAL_RCC_GetHCLKFreq() / 1000000U; /* Convert to MHz */
/* Enable DWT cycle counter */
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
hal_delay_init();
}
/**
@ -31,7 +21,7 @@ void delay_init(void) {
* @param ms: Delay time in milliseconds
*/
void delay_ms(uint32_t ms) {
HAL_Delay(ms);
hal_delay_ms(ms);
}
/**
@ -39,11 +29,5 @@ void delay_ms(uint32_t ms) {
* @param us: Delay time in microseconds
*/
void delay_us(uint32_t us) {
uint32_t start = DWT->CYCCNT;
uint32_t cycles = (uint32_t)(us * delay_tick_freq);
/* Wait until the delay is completed */
while ((DWT->CYCCNT - start) < cycles) {
/* Do nothing */
}
hal_delay_us(us);
}