网站做seo推广,北京it行业公司排名,莱州网站建设制作,网站建立企业gpio输出
该函数库的目的就是在统一的地方配置#xff0c;将配置的不同项放置在一个结构体内部使用一个枚举来定义一个的别名
led.c #include stdio.h
#include led/bsp_led.hstatic led_t leds[LED_NUM]{{GPIOB,GPIO_PIN_2,RCC_APB2_PERIPH_GPIOB},{GP…gpio输出
该函数库的目的就是在统一的地方配置将配置的不同项放置在一个结构体内部使用一个枚举来定义一个的别名
led.c #include stdio.h
#include led/bsp_led.hstatic led_t leds[LED_NUM]{{GPIOB,GPIO_PIN_2,RCC_APB2_PERIPH_GPIOB},{GPIOB,GPIO_PIN_1,RCC_APB2_PERIPH_GPIOB},{GPIOB,GPIO_PIN_0,RCC_APB2_PERIPH_GPIOB},{GPIOC,GPIO_PIN_5,RCC_APB2_PERIPH_GPIOC},{GPIOC,GPIO_PIN_4,RCC_APB2_PERIPH_GPIOC},{GPIOC,GPIO_PIN_3,RCC_APB2_PERIPH_GPIOC},{GPIOC,GPIO_PIN_2,RCC_APB2_PERIPH_GPIOC},{GPIOC,GPIO_PIN_1,RCC_APB2_PERIPH_GPIOC},{GPIOB,GPIO_PIN_3,RCC_APB2_PERIPH_GPIOB},};/*LED初始化
*/
static void bsp_led_init (led_t *pled)
{GPIO_InitType GPIO_InitStructure;/* Check the parameters */assert_param(IS_GPIO_ALL_PERIPH(pled-gpiox));RCC_EnableAPB2PeriphClk(pled-gpio_rcc, ENABLE);/* Configure the GPIO pin */if (pled-pin GPIO_PIN_ALL){GPIO_InitStruct(GPIO_InitStructure);GPIO_InitStructure.Pin pled-pin;GPIO_InitStructure.GPIO_Current GPIO_DC_12mA;GPIO_InitStructure.GPIO_Pull GPIO_No_Pull;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitPeripheral(pled-gpiox, GPIO_InitStructure);}
}/*led 开关
*/
void led_on_off(em_led_t id,Bit_OperateType sta)
{led_t *pledNULL;if(LED_NUMid){pled ledsid;GPIO_WriteBit(pled-gpiox,pled-pin,sta);}}
/*led 闪烁
*/
void led_on_blink(em_led_t id)
{led_t *pledNULL;if(LED_NUMid){pled ledsid;GPIO_WriteBit(pled-gpiox,pled-pin,(Bit_OperateType)!GPIO_ReadOutputDataBit(pled-gpiox,pled-pin));}}/*一键初始化所有LED
*/
void bsp_leds_init(void)
{for(int i0;iLED_NUM;i){bsp_led_init(ledsi);}
}
led.h #ifndef _BSP_LED_H_
#define _BSP_LED_H_
#include stdint.h
#include n32l40x.h#define ON Bit_SET
#define OFF Bit_RESETtypedef enum
{LED0,//LED1,//LED2,//LED3,//LED4,//LED5,//LED6,//led灯LED7,//led灯LED8,//485输出控制LED_NUM//gpio输出数量
}em_led_t;typedef struct
{GPIO_Module* gpiox;uint16_t pin;uint32_t gpio_rcc;
}led_t;/*一键初始化所有LED
*/
void bsp_leds_init(void);
/*led 开关
*/
void led_on_off(em_led_t id,Bit_OperateType sta);/*led 闪烁
*/
void led_on_blink(em_led_t id);#endif