杰理AC692X---GPIO驱动LED

根据原厂SDK进行讲解

首先打开LED宏定义(sdk_cfg.h):
杰理AC692X---GPIO驱动LED_第1张图片** 选择点灯方式(led.h):**
杰理AC692X---GPIO驱动LED_第2张图片
一般选择PA/B/C/D口,PR口是在低功耗(假关机)模式下选择。LED驱动方式一般选择普通。

#define LED_PORTX               JL_PORTA
#define LED_BLUE                  BIT(3)
#define LED_RED                   BIT(2)

根据项目需求配置GPIO口。上面代码配置的是PA3&PA2口。

#define LED_INIT_EN()     	    do{LED_PORTX->PU &= ~LED_BLUE;LED_PORTX->PD &= ~LED_BLUE;LED_PORTX->DIR &= ~LED_BLUE;\
                                   LED_PORTX->PU &= ~LED_RED;LED_PORTX->PD &= ~LED_RED;LED_PORTX->DIR &= ~LED_RED;}while(0)
#define LED_INIT_DIS()		    do{LED_PORTX->PU &= ~LED_BLUE;LED_PORTX->PD &= ~LED_BLUE;LED_PORTX->DIR |=  LED_BLUE;\
                                   LED_PORTX->PU &= ~LED_RED;LED_PORTX->PD &= ~LED_RED;LED_PORTX->DIR |=  LED_RED;}while(0)
#define B_LED_ON()			    do{LED_PORTX->OUT |=  LED_BLUE;}while(0)
#define B_LED_OFF()			    do{LED_PORTX->OUT &= ~LED_BLUE;}while(0)
#define R_LED_ON()			    do{LED_PORTX->OUT |=  LED_RED;}while(0)
#define R_LED_OFF()			    do{LED_PORTX->OUT &= ~LED_RED;}while(0)

初始化配置的GPIO口,控制GPIO的高低电平实现灯的开关。

杰理AC692X---GPIO驱动LED_第3张图片
这是封装好的灯工作的模式(led.h),通过调用接口就可以实现功能了。

led_fre_set(C_ALL_ON_MODE);

比如你想在进蓝牙模式的时候亮灯

static void *task_bt_init(void *priv)
//调用接口
    led_fre_set(C_RB_FAST_MODE);

退出蓝牙模式的时候灭灯

static void task_bt_exit(void **hdl)
//调用接口
    led_fre_set(C_ALL_OFF_MODE);

你可能感兴趣的:(JL杰理相关)