Update mdelay and gpio function
| | |
| | | #include "tim.h" |
| | | #include "buzzer.h" |
| | | |
| | | #define mdelay(ms) HAL_Delay(ms) |
| | | #define ARRAY_SIZE(song) (sizeof(song)/sizeof(song[0])) |
| | | |
| | | /* 音符频率定义(Hz) */ |
| | |
| | | /* 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); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | /* |
| | | *+----------------------+ |
| | | *| 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 | |
| | | *+----------------------+ |
| | | */ |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | #define OFF 0 |
| | | #define ON 1 |
| | | |
| | | /* |
| | | *+----------------------+ |
| | | *| STM32 GPIO API | |
| | | *+----------------------+ |
| | | */ |
| | | |
| | | |
| | | /* 定义一个gpio的结构体,用来描述这个引脚的相关信息 */ |
| | | typedef struct gpio_s |
| | | { |
| | |
| | | int active; /* 1 for active high, 0 for active low */ |
| | | } gpio_t; |
| | | |
| | | extern void gpio_clk_enable(GPIO_TypeDef *port); |
| | | |
| | | /* |
| | | *+----------------------+ |
| | | *| GPIO Relay API | |
| | |
| | | */ |
| | | extern void udelay(uint16_t us); |
| | | |
| | | /** |
| | | * @brief 毫秒秒级延时,直接使用 HAL_Delay(),方便代码可读性 |
| | | * @param ms: 延时时长(毫秒) |
| | | */ |
| | | #define mdelay(ms) HAL_Delay(ms) |
| | | |
| | | #endif /* __MISCDEV_H */ |
| | |
| | | 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 */ |
| | | |
| | |
| | | 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 |
| | |
| | | #include "tim.h" |
| | | #include "buzzer.h" |
| | | |
| | | #define mdelay(ms) HAL_Delay(ms) |
| | | #define ARRAY_SIZE(song) (sizeof(song)/sizeof(song[0])) |
| | | |
| | | /* 音符频率定义(Hz) */ |
| | |
| | | /* 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); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | /* |
| | | *+----------------------+ |
| | | *| 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 | |
| | | *+----------------------+ |
| | | */ |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | #define OFF 0 |
| | | #define ON 1 |
| | | |
| | | /* |
| | | *+----------------------+ |
| | | *| STM32 GPIO API | |
| | | *+----------------------+ |
| | | */ |
| | | |
| | | |
| | | /* 定义一个gpio的结构体,用来描述这个引脚的相关信息 */ |
| | | typedef struct gpio_s |
| | | { |
| | |
| | | int active; /* 1 for active high, 0 for active low */ |
| | | } gpio_t; |
| | | |
| | | extern void gpio_clk_enable(GPIO_TypeDef *port); |
| | | |
| | | /* |
| | | *+----------------------+ |
| | | *| GPIO Relay API | |
| | |
| | | */ |
| | | extern void udelay(uint16_t us); |
| | | |
| | | /** |
| | | * @brief 毫秒秒级延时,直接使用 HAL_Delay(),方便代码可读性 |
| | | * @param ms: 延时时长(毫秒) |
| | | */ |
| | | #define mdelay(ms) HAL_Delay(ms) |
| | | |
| | | #endif /* __MISCDEV_H */ |
| | |
| | | #include "tim.h" |
| | | #include "buzzer.h" |
| | | |
| | | #define mdelay(ms) HAL_Delay(ms) |
| | | #define ARRAY_SIZE(song) (sizeof(song)/sizeof(song[0])) |
| | | |
| | | /* 音符频率定义(Hz) */ |
| | |
| | | /* 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); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | /* |
| | | *+----------------------+ |
| | | *| 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 | |
| | | *+----------------------+ |
| | | */ |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | #define OFF 0 |
| | | #define ON 1 |
| | | |
| | | /* |
| | | *+----------------------+ |
| | | *| STM32 GPIO API | |
| | | *+----------------------+ |
| | | */ |
| | | |
| | | |
| | | /* 定义一个gpio的结构体,用来描述这个引脚的相关信息 */ |
| | | typedef struct gpio_s |
| | | { |
| | |
| | | int active; /* 1 for active high, 0 for active low */ |
| | | } gpio_t; |
| | | |
| | | extern void gpio_clk_enable(GPIO_TypeDef *port); |
| | | |
| | | /* |
| | | *+----------------------+ |
| | | *| GPIO Relay API | |
| | |
| | | */ |
| | | extern void udelay(uint16_t us); |
| | | |
| | | /** |
| | | * @brief 毫秒秒级延时,直接使用 HAL_Delay(),方便代码可读性 |
| | | * @param ms: 延时时长(毫秒) |
| | | */ |
| | | #define mdelay(ms) HAL_Delay(ms) |
| | | |
| | | #endif /* __MISCDEV_H */ |
| | |
| | | #include "ws2812b.h" |
| | | #include "miscdev.h" |
| | | |
| | | #define mdelay(ms) HAL_Delay(ms) |
| | | |
| | | static color_t g_ColorPanel[WS2812_NUM]; |
| | | |
| | | typedef struct ws_gpio_s |
| | |
| | | while (1) |
| | | { |
| | | ws2812b_blink(); |
| | | HAL_Delay(10); |
| | | mdelay(10); |
| | | |
| | | /* USER CODE END WHILE */ |
| | | |