#include "bsp_led.h" gpio_type *led_gpio_port[LED_NUM] = { LED2_GPIO, LED3_GPIO, LED4_GPIO }; uint16_t led_gpio_pin[LED_NUM] = { LED2_PIN, LED3_PIN, LED4_PIN }; crm_periph_clock_type led_gpio_crm_clk[LED_NUM] = { LED2_GPIO_CRM_CLK, LED3_GPIO_CRM_CLK, LED4_GPIO_CRM_CLK }; void bsp_led_init(led_type led) { gpio_init_type gpio_init_struct; /* enable the led clock */ crm_periph_clock_enable(led_gpio_crm_clk[led], TRUE); /* set default parameter */ gpio_default_para_init(&gpio_init_struct); /* configure the led gpio */ gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT; gpio_init_struct.gpio_pins = led_gpio_pin[led]; gpio_init_struct.gpio_pull = GPIO_PULL_NONE; gpio_init(led_gpio_port[led], &gpio_init_struct); gpio_bits_set(GPIOB, GPIO_PINS_7); gpio_bits_reset(GPIOB, GPIO_PINS_7); gpio_bits_set(GPIOB, GPIO_PINS_7); gpio_bits_reset(GPIOB, GPIO_PINS_7); } void bsp_led_on(led_type led) { if(led > (LED_NUM - 1)) return; if(led_gpio_pin[led]) led_gpio_port[led]->clr = led_gpio_pin[led]; } /** * @brief turns selected led off. * @param led: specifies the led to be set off. * this parameter can be one of following parameters: * @arg LED2 * @arg LED3 * @arg LED4 * @retval none */ void bsp_led_off(led_type led) { if(led > (LED_NUM - 1)) return; if(led_gpio_pin[led]) led_gpio_port[led]->scr = led_gpio_pin[led]; } /** * @brief turns selected led toggle. * @param led: specifies the led to be set off. * this parameter can be one of following parameters: * @arg LED2 * @arg LED3 * @arg LED4 * @retval none */ void bsp_led_toggle(led_type led) { if(led > (LED_NUM - 1)) return; if(led_gpio_pin[led]) led_gpio_port[led]->odt ^= led_gpio_pin[led]; }