【cc2541历程】按键

一、简介

 本文在工程SimpleBLEPeripheral的基础上,修改部分程序,实现按键功能。
二、开发平台
编译环境:IAR820.02
协议栈:BLE-CC254x-1.4.0
代码查看器:Source Insight 3.5
硬件平台:SmartRF开发板
三、编写声明
淘宝店小店:https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4023-16306486995.5.hdKUUO&id=548576956486
四、实验前提
暂无
五、相关电路图
1)独立按键
【cc2541历程】按键
2)五向按键
【cc2541历程】按键
【cc2541历程】按键
3)原理:五向按键与SN74HC32D连接,按下五向按键的任何一端都可以触发P20脚,从而MCU可判断五向按键是否被按下,
同时从P06端检测放大器的电压,进而判断五向按键的哪一端按下
1、上升沿触发P20
2、ADC采集引脚为P06
1、设置IAR中
1) 在IAR工程中的option选项中 设置 HAL_KEY = TRUE”(打开按键功能) .
设置IAR的option选项(protect -> option -> c/c++Compiler ->preprocessor )
【cc2541历程】按键
2、修改应用层代码
1)注释掉相关宏定义
在函数simpleBLEPeripheral_HandleKeys的声明前后(SimpleBLEPeripheral.c文件中)
【cc2541历程】按键
2)在应用层按键事件入口里面(SimpleBLEPeripheral.c文件中)
   在simpleBLEPeripheral_ProcessOSALMsg函数里面
【cc2541历程】按键
3)在simpleBLEPeripheral_HandleKeys(SimpleBLEPeripheral.c文件中)
前后的(cc2540_MINIDK)先注释掉,把按键处理部分函数也删除,否则编译出错。
【cc2541历程】按键
4)添加注册按键事件
在事件初始化中SimpleBLEPeripheral_Init添加注册事件(SimpleBLEPeripheral.c文件中)
// Register for all key events - This app will handle all key events
RegisterForKeys( simpleBLEPeripheral_TaskID );
【cc2541历程】按键
3、按键驱动代码修改:
1)协议栈默认为下降沿触发,而我们的开发板为上升沿触发(Hal_key文件中)
//#define HAL_KEY_JOY_MOVE_EDGE HAL_KEY_FALLING_EDGE
#define HAL_KEY_JOY_MOVE_EDGE HAL_KEY_RISING_EDGE//HAL_KEY_FALLING_EDGE
【cc2541历程】按键
2)修改协议栈中的错误代码(Hal_key文件中)
前部分注释掉的为协议栈源代码,后部分为修改过后的代码
// /* Rising/Falling edge configuratinn */
// HAL_KEY_JOY_MOVE_ICTL &= ~(HAL_KEY_JOY_MOVE_EDGEBIT); /* Clear the edge bit */
// /* For falling edge, the bit must be set. */
// #if (HAL_KEY_JOY_MOVE_EDGE == HAL_KEY_FALLING_EDGE)
// HAL_KEY_JOY_MOVE_ICTL |= HAL_KEY_JOY_MOVE_EDGEBIT;
// #endif
/* Rising/Falling edge configuratinn */
PICTL &= ~(HAL_KEY_JOY_MOVE_EDGEBIT); /* Clear the edge bit */
/* For falling edge, the bit must be set. */
#if (HAL_KEY_JOY_MOVE_EDGE == HAL_KEY_FALLING_EDGE)
PICTL |= HAL_KEY_JOY_MOVE_EDGEBIT;
#endif
协议栈错误代码将中断使能寄存器HAL_KEY_JOY_MOVE_ICTL (P2IEN)当做PICEL:
【cc2541历程】按键
【cc2541历程】按键
按键修改完成,可以在(SimpleBLEPeripheral.c)添加相应的应用..
【cc2541历程】按键



作者:爱已oО欠费

相关CC2541群:606444519

无按键时电压:2.39V

按Center键时电压:2.39V

按Up键时电压:0.41V

按Down键时电压:1.36V

按Left键时电压:1.85V

按Right键时电压:2.05V

六、实验过程