【cc2541历程】按键

来源:互联网 发布:java spilt 正则 编辑:程序博客网 时间:2024/06/06 03:03

一、简介

 本文在工程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)独立按键

2)五向按键


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 )

2、修改应用层代码
1)注释掉相关宏定义
在函数simpleBLEPeripheral_HandleKeys的声明前后(SimpleBLEPeripheral.c文件中)

2)在应用层按键事件入口里面(SimpleBLEPeripheral.c文件中)
   在simpleBLEPeripheral_ProcessOSALMsg函数里面

3)在simpleBLEPeripheral_HandleKeys(SimpleBLEPeripheral.c文件中)
前后的(cc2540_MINIDK)先注释掉,把按键处理部分函数也删除,否则编译出错。

4)添加注册按键事件
在事件初始化中SimpleBLEPeripheral_Init添加注册事件(SimpleBLEPeripheral.c文件中)
// Register for all key events - This app will handle all key events
RegisterForKeys( simpleBLEPeripheral_TaskID );

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

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:


按键修改完成,可以在(SimpleBLEPeripheral.c)添加相应的应用..




作者:爱已oО欠费

相关CC2541群:606444519

无按键时电压:2.39V

按Center键时电压:2.39V

按Up键时电压:0.41V

按Down键时电压:1.36V

按Left键时电压:1.85V

按Right键时电压:2.05V

六、实验过程


0 0
原创粉丝点击