guowenxue
5 days ago c6a1e7c00cd2946cef7716b205026a907136778b
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  |
 *+----------------------+
 */
@@ -79,7 +106,7 @@
    if( which >= LedMax )
        return ;
    level = status==OFF ? GPIO_PIN_SET : GPIO_PIN_RESET;
    level = status==ON ? leds[which].active : !leds[which].active;
    HAL_GPIO_WritePin(leds[which].group, leds[which].pin, level);
}
@@ -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);
}
/**