杰理蓝牙AC692N按键调试

1、首先在sdk_cfg.hl里打开#define __DEBUG,用于串口打印

2、在key.h打开KEY_AD_VDDIO_EN,采用AD按键,比KEY IO可以节约很多IO口

/*按键类型定义*/
#define KEY_AD_RTCVDD_EN       0   ///<采用RTCVDD电源的AD按键使能
#define KEY_AD_VDDIO_EN        1   ///<采用VDDIO电源的AD按键使能
#define KEY_IO_EN              0   ///<IO按键使能
#define KEY_IR_EN              0   ///<红外遥控使能,PA9
#define KEY_TCH_EN             0   ///<触摸按键使能
#define KEY_UART_EN            0   ///<串口按键使能
#define KEY_ENCODER_EN           0   ///<旋转编码器使能

3、AD key IO口设置,IO口必须是具有ADC 功能的IO口(key_drv_ad.h)

#define AD_KEY_IO_PAX  0
#define AD_KEY_IO_PX   JL_PORTA
#define AD_KEY_CH      AD_CH_PA10

4、按键值与按键消息

杰理蓝牙AC692N按键调试

    在key_drv_ad_vddio.c里有

#define ADC10_33   (0x3ffL)
#define ADC10_30   (0x3ffL*2200/(2200 + R_UP))     //220K
#define ADC10_27   (0x3ffL*1000/(1000 + R_UP))     //100K
#define ADC10_23   (0x3ffL*510 /(510  + R_UP))     //51K
#define ADC10_20   (0x3ffL*330 /(330  + R_UP))     //33K
#define ADC10_17   (0x3ffL*240 /(240  + R_UP))     //24K
#define ADC10_13   (0x3ffL*150 /(150  + R_UP))     //15K
#define ADC10_10   (0x3ffL*91  /(91   + R_UP))     //9.1K
#define ADC10_07   (0x3ffL*62  /(62   + R_UP))     //6.2K
#define ADC10_04   (0x3ffL*30  /(30   + R_UP))     //3K
#define ADC10_00   (0)

......

const u16 ad_key_table[] = {
    ADKEY1_0, ADKEY1_1, ADKEY1_2, ADKEY1_3, ADKEY1_4,
    ADKEY1_5, ADKEY1_6, ADKEY1_7, ADKEY1_8
};

对应AD按键的9各按键值

杰理蓝牙AC692N按键调试

杰理蓝牙AC692N按键调试

等等

然后就是每个模式下的按键消息与key_num对应

#define ADKEY_BT_SHORT        \
                        /*00*/    MSG_CHANGE_WORKMODE,\
                        /*01*/    MSG_BT_PREV_FILE,\
                        /*02*/    MSG_BT_NEXT_FILE,\
                        /*03*/    MSG_BT_PP,\
                        /*04*/    NO_MSG,\
                        /*05*/    NO_MSG,\
                        /*06*/    NO_MSG,\
                        /*07*/    NO_MSG,\
                        /*08*/    NO_MSG,\
                        /*09*/    MSG_BT_CALL_LAST_NO,

其它的就是消息处理了 。

最近刚玩杰理的蓝牙芯片,调试的时候将调试过程写下来了,希望对刚学的朋友有所帮助。