guowenxue
9 days ago 6c1a5eb1a9891898552bb9320ba973349ca4bffa
Update mdelay and gpio function
13 files modified
183 ■■■■ changed files
ex1.auto-light/Board/buzzer.c 11 ●●●● patch | view | raw | blame | history
ex1.auto-light/Board/miscdev.c 31 ●●●●● patch | view | raw | blame | history
ex1.auto-light/Board/miscdev.h 15 ●●●●● patch | view | raw | blame | history
ex1.auto-light/Core/Src/main.c 6 ●●●● patch | view | raw | blame | history
ex1.auto-light/ISKBoard.ioc 2 ●●● patch | view | raw | blame | history
ex1.buzzer-music/Board/buzzer.c 11 ●●●● patch | view | raw | blame | history
ex1.buzzer-music/Board/miscdev.c 31 ●●●●● patch | view | raw | blame | history
ex1.buzzer-music/Board/miscdev.h 15 ●●●●● patch | view | raw | blame | history
ex1.ws2812b/Board/buzzer.c 11 ●●●● patch | view | raw | blame | history
ex1.ws2812b/Board/miscdev.c 31 ●●●●● patch | view | raw | blame | history
ex1.ws2812b/Board/miscdev.h 15 ●●●●● patch | view | raw | blame | history
ex1.ws2812b/Board/ws2812b.c 2 ●●●●● patch | view | raw | blame | history
ex1.ws2812b/Core/Src/main.c 2 ●●● patch | view | raw | blame | history
ex1.auto-light/Board/buzzer.c
@@ -11,6 +11,7 @@
#include "tim.h"
#include "buzzer.h"
#define mdelay(ms)            HAL_Delay(ms)
#define ARRAY_SIZE(song)      (sizeof(song)/sizeof(song[0]))
/* 音符频率定义(Hz) */
@@ -147,12 +148,12 @@
        /* Start buzzer */
        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
        HAL_Delay(interval);
        mdelay(interval);
        /* Stop buzzer */
        HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);
        HAL_Delay(interval);
        mdelay(interval);
    }
}
@@ -164,18 +165,18 @@
    if (freq == 0)
    {
        HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);
        HAL_Delay(duration_ms);
        mdelay(duration_ms);
        return;
    }
    Buzzer_SetFreq(freq);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
    HAL_Delay(duration_ms - 30);
    mdelay(duration_ms - 30);
    HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);
    HAL_Delay(30);
    mdelay(30);
}
/**
ex1.auto-light/Board/miscdev.c
@@ -12,6 +12,33 @@
/*
 *+----------------------+
 *|    STM32 GPIO API    |
 *+----------------------+
 */
void gpio_clk_enable(GPIO_TypeDef *port)
{
    if      (port == GPIOA) __HAL_RCC_GPIOA_CLK_ENABLE();
    else if (port == GPIOB) __HAL_RCC_GPIOB_CLK_ENABLE();
    else if (port == GPIOC) __HAL_RCC_GPIOC_CLK_ENABLE();
    else if (port == GPIOD) __HAL_RCC_GPIOD_CLK_ENABLE();
#ifdef GPIOE
    else if (port == GPIOE) __HAL_RCC_GPIOE_CLK_ENABLE();
#endif
#ifdef GPIOF
    else if (port == GPIOF) __HAL_RCC_GPIOF_CLK_ENABLE();
#endif
#ifdef GPIOG
    else if (port == GPIOG) __HAL_RCC_GPIOG_CLK_ENABLE();
#endif
#ifdef GPIOH
    else if (port == GPIOH) __HAL_RCC_GPIOH_CLK_ENABLE();
#endif
}
/*
 *+----------------------+
 *|  GPIO Led/Relay API  |
 *+----------------------+
 */
@@ -103,10 +130,10 @@
void blink_led(int which, uint32_t interval)
{
    turn_led(which, ON);
    HAL_Delay(interval);
    mdelay(interval);
    turn_led(which, OFF);
    HAL_Delay(interval);
    mdelay(interval);
}
/**
ex1.auto-light/Board/miscdev.h
@@ -21,6 +21,13 @@
#define OFF    0
#define ON     1
/*
 *+----------------------+
 *|    STM32 GPIO API    |
 *+----------------------+
 */
/* 定义一个gpio的结构体,用来描述这个引脚的相关信息 */
typedef struct gpio_s
{
@@ -30,6 +37,8 @@
    int                 active; /* 1 for active high, 0 for active low */
} gpio_t;
extern void gpio_clk_enable(GPIO_TypeDef *port);
/*
 *+----------------------+
 *|    GPIO Relay API    |
@@ -151,4 +160,10 @@
 */
extern void udelay(uint16_t us);
/**
 * @brief  毫秒秒级延时,直接使用 HAL_Delay(),方便代码可读性
 * @param  ms: 延时时长(毫秒)
 */
#define mdelay(ms)  HAL_Delay(ms)
#endif /* __MISCDEV_H */
ex1.auto-light/Core/Src/main.c
@@ -116,16 +116,16 @@
          turn_led(Led_R, ON);
          /* 延时一会(等人过去)再关闭灯泡 */
          HAL_Delay(5000);
          mdelay(5000);
          printf("turn light off now\r\n");
          turn_relay(OFF);
          turn_led(Led_R, OFF);
          /* 继电器关的时候有声音,等一会再开始采样 */
          HAL_Delay(1000);
          mdelay(1000);
      }
      HAL_Delay(10);
      mdelay(10);
    /* USER CODE END WHILE */
ex1.auto-light/ISKBoard.ioc
@@ -133,7 +133,7 @@
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_TIM6_Init-TIM6-false-HAL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_TIM6_Init-TIM6-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true
RCC.ADCFreq_Value=32000000
RCC.AHBFreq_Value=80000000
RCC.APB1Freq_Value=80000000
ex1.buzzer-music/Board/buzzer.c
@@ -11,6 +11,7 @@
#include "tim.h"
#include "buzzer.h"
#define mdelay(ms)            HAL_Delay(ms)
#define ARRAY_SIZE(song)      (sizeof(song)/sizeof(song[0]))
/* 音符频率定义(Hz) */
@@ -147,12 +148,12 @@
        /* Start buzzer */
        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
        HAL_Delay(interval);
        mdelay(interval);
        /* Stop buzzer */
        HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);
        HAL_Delay(interval);
        mdelay(interval);
    }
}
@@ -164,18 +165,18 @@
    if (freq == 0)
    {
        HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);
        HAL_Delay(duration_ms);
        mdelay(duration_ms);
        return;
    }
    Buzzer_SetFreq(freq);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
    HAL_Delay(duration_ms - 30);
    mdelay(duration_ms - 30);
    HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);
    HAL_Delay(30);
    mdelay(30);
}
/**
ex1.buzzer-music/Board/miscdev.c
@@ -12,6 +12,33 @@
/*
 *+----------------------+
 *|    STM32 GPIO API    |
 *+----------------------+
 */
void gpio_clk_enable(GPIO_TypeDef *port)
{
    if      (port == GPIOA) __HAL_RCC_GPIOA_CLK_ENABLE();
    else if (port == GPIOB) __HAL_RCC_GPIOB_CLK_ENABLE();
    else if (port == GPIOC) __HAL_RCC_GPIOC_CLK_ENABLE();
    else if (port == GPIOD) __HAL_RCC_GPIOD_CLK_ENABLE();
#ifdef GPIOE
    else if (port == GPIOE) __HAL_RCC_GPIOE_CLK_ENABLE();
#endif
#ifdef GPIOF
    else if (port == GPIOF) __HAL_RCC_GPIOF_CLK_ENABLE();
#endif
#ifdef GPIOG
    else if (port == GPIOG) __HAL_RCC_GPIOG_CLK_ENABLE();
#endif
#ifdef GPIOH
    else if (port == GPIOH) __HAL_RCC_GPIOH_CLK_ENABLE();
#endif
}
/*
 *+----------------------+
 *|  GPIO Led/Relay API  |
 *+----------------------+
 */
@@ -103,10 +130,10 @@
void blink_led(int which, uint32_t interval)
{
    turn_led(which, ON);
    HAL_Delay(interval);
    mdelay(interval);
    turn_led(which, OFF);
    HAL_Delay(interval);
    mdelay(interval);
}
/**
ex1.buzzer-music/Board/miscdev.h
@@ -21,6 +21,13 @@
#define OFF    0
#define ON     1
/*
 *+----------------------+
 *|    STM32 GPIO API    |
 *+----------------------+
 */
/* 定义一个gpio的结构体,用来描述这个引脚的相关信息 */
typedef struct gpio_s
{
@@ -30,6 +37,8 @@
    int                 active; /* 1 for active high, 0 for active low */
} gpio_t;
extern void gpio_clk_enable(GPIO_TypeDef *port);
/*
 *+----------------------+
 *|    GPIO Relay API    |
@@ -151,4 +160,10 @@
 */
extern void udelay(uint16_t us);
/**
 * @brief  毫秒秒级延时,直接使用 HAL_Delay(),方便代码可读性
 * @param  ms: 延时时长(毫秒)
 */
#define mdelay(ms)  HAL_Delay(ms)
#endif /* __MISCDEV_H */
ex1.ws2812b/Board/buzzer.c
@@ -11,6 +11,7 @@
#include "tim.h"
#include "buzzer.h"
#define mdelay(ms)            HAL_Delay(ms)
#define ARRAY_SIZE(song)      (sizeof(song)/sizeof(song[0]))
/* 音符频率定义(Hz) */
@@ -147,12 +148,12 @@
        /* Start buzzer */
        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
        HAL_Delay(interval);
        mdelay(interval);
        /* Stop buzzer */
        HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);
        HAL_Delay(interval);
        mdelay(interval);
    }
}
@@ -164,18 +165,18 @@
    if (freq == 0)
    {
        HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);
        HAL_Delay(duration_ms);
        mdelay(duration_ms);
        return;
    }
    Buzzer_SetFreq(freq);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
    HAL_Delay(duration_ms - 30);
    mdelay(duration_ms - 30);
    HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);
    HAL_Delay(30);
    mdelay(30);
}
/**
ex1.ws2812b/Board/miscdev.c
@@ -12,6 +12,33 @@
/*
 *+----------------------+
 *|    STM32 GPIO API    |
 *+----------------------+
 */
void gpio_clk_enable(GPIO_TypeDef *port)
{
    if      (port == GPIOA) __HAL_RCC_GPIOA_CLK_ENABLE();
    else if (port == GPIOB) __HAL_RCC_GPIOB_CLK_ENABLE();
    else if (port == GPIOC) __HAL_RCC_GPIOC_CLK_ENABLE();
    else if (port == GPIOD) __HAL_RCC_GPIOD_CLK_ENABLE();
#ifdef GPIOE
    else if (port == GPIOE) __HAL_RCC_GPIOE_CLK_ENABLE();
#endif
#ifdef GPIOF
    else if (port == GPIOF) __HAL_RCC_GPIOF_CLK_ENABLE();
#endif
#ifdef GPIOG
    else if (port == GPIOG) __HAL_RCC_GPIOG_CLK_ENABLE();
#endif
#ifdef GPIOH
    else if (port == GPIOH) __HAL_RCC_GPIOH_CLK_ENABLE();
#endif
}
/*
 *+----------------------+
 *|  GPIO Led/Relay API  |
 *+----------------------+
 */
@@ -103,10 +130,10 @@
void blink_led(int which, uint32_t interval)
{
    turn_led(which, ON);
    HAL_Delay(interval);
    mdelay(interval);
    turn_led(which, OFF);
    HAL_Delay(interval);
    mdelay(interval);
}
/**
ex1.ws2812b/Board/miscdev.h
@@ -21,6 +21,13 @@
#define OFF    0
#define ON     1
/*
 *+----------------------+
 *|    STM32 GPIO API    |
 *+----------------------+
 */
/* 定义一个gpio的结构体,用来描述这个引脚的相关信息 */
typedef struct gpio_s
{
@@ -30,6 +37,8 @@
    int                 active; /* 1 for active high, 0 for active low */
} gpio_t;
extern void gpio_clk_enable(GPIO_TypeDef *port);
/*
 *+----------------------+
 *|    GPIO Relay API    |
@@ -151,4 +160,10 @@
 */
extern void udelay(uint16_t us);
/**
 * @brief  毫秒秒级延时,直接使用 HAL_Delay(),方便代码可读性
 * @param  ms: 延时时长(毫秒)
 */
#define mdelay(ms)  HAL_Delay(ms)
#endif /* __MISCDEV_H */
ex1.ws2812b/Board/ws2812b.c
@@ -23,8 +23,6 @@
#include "ws2812b.h"
#include "miscdev.h"
#define mdelay(ms) HAL_Delay(ms)
static color_t g_ColorPanel[WS2812_NUM];
typedef struct ws_gpio_s
ex1.ws2812b/Core/Src/main.c
@@ -107,7 +107,7 @@
  while (1)
  {
    ws2812b_blink();
    HAL_Delay(10);
    mdelay(10);
    /* USER CODE END WHILE */