微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541按键修改,IO配置问题

CC2541按键修改,IO配置问题

时间:10-02 整理:3721RD 点击:

各位大神你们好:

在CC2541simpleBLECentral示例工程中,把之前的IO配置改p1.1和P1.2口作为按键,参照http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/67314/157410.aspx#157410和SensorTag来配置,但改后不成功,还请各位大神帮我看看.......

这是我已修改后的地方:

在hal_board_cfg.h中

/* S1 */
#define PUSH1_BV  BV(1)
#define PUSH1_SBIT  P1_1
#define PUSH1_POLARITY  ACTIVE_LOW
/*S2*/
#define PUSH2_BV BV(2)
#define PUSH2_SBIT P1_2
#define PUSH2_POLARITY ACTIVE_LOW

#if defined ( CC2540_MINIDK )||(WB_BOARD) // 在编译中添加(WB_BOARD)
/* SW_1 is at P1.1 */
#define HAL_KEY_SW_1_PORT  P1
#define HAL_KEY_SW_1_BIT      BV(1)
#define HAL_KEY_SW_1_SEL    P1SEL
#define HAL_KEY_SW_1_DIR     P1DIR

/* SW_2 is at P1.2 */
#define HAL_KEY_SW_2_PORT     P1
#define HAL_KEY_SW_2_BIT        BV(2)
#define HAL_KEY_SW_2_SEL       P1SEL
#define HAL_KEY_SW_2_DIR       P1DIR

#define HAL_KEY_SW_1_IEN           IEN2 /* CPU interrupt mask register */
#define HAL_KEY_SW_1_ICTL          P1IEN /* Port Interrupt Control register */
#define HAL_KEY_SW_1_ICTLBIT    BV(1) /* P1IEN - P1.1 enable/disable bit */
#define HAL_KEY_SW_1_IENBIT      BV(4) /* Mask bit for all of Port_1 */

#define HAL_KEY_SW_1_PXIFG       P1IFG
#define HAL_KEY_SW_2_IEN           IEN2
#define HAL_KEY_SW_2_ICTL         P1IEN 
#define HAL_KEY_SW_2_ICTLBIT   BV(2) 
#define HAL_KEY_SW_2_IENBIT     BV(4) 
#define HAL_KEY_SW_2_PXIFG       P1IFG

#define HAL_KEY_SW_1_EDGEBIT BV(0)

在simpleBLECentral.c

static void simpleBLECentral_HandleKeys( uint8 shift, uint8 keys )

{

if(keys & HAL_KEY_SW_1)
{
epd_dis_Rssi_db(01);//显示数字01
}
if(keys & HAL_KEY_SW_2)
{
epd_dis_Rssi_db(02);//显示数字02
}

}

按键按下后还是无法显示,其中epd_dis_Rssi_db( );函数没有问题,是不是还有其他地方没有修改到位?

1、首先在应用层初始化函数中加入key事件注册

      

// Register for all key events - This app will handle all key events
RegisterForKeys(xxxxxx_TaskID );

2、因为simpleBLECentral这个工程可能用到的是五向按键,即ADC加中断模式,而你修改的是两个I/O口,要使用中断模式会好好些

     所以在hal_interrupt.c这个源文件 中把PORT1的中断函数修改一下,如果不知道怎么修改的,可以参考keyfob或sensorTag这两个例程或其它

3、希望可以帮到你,祝你好运

问题解决了没有,好像这里没有改

#define HAL_KEY_SW_1_EDGEBIT BV(0)          

你试一下,好像要改成 BV(3)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top