【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)添加相应的应用..
一、简介
本文在工程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
六、实验过程
无按键时电压:2.39V
按Center键时电压:2.39V
按Up键时电压:0.41V
按Down键时电压:1.36V
按Left键时电压:1.85V
按Right键时电压:2.05V
六、实验过程
无按键时电压:2.39V
按Center键时电压:2.39V
按Up键时电压:0.41V
按Down键时电压:1.36V
按Left键时电压:1.85V
按Right键时电压:2.05V
六、实验过程
- 【cc2541历程】按键
- 【cc2541历程】按键控制PWM调光
- 【cc2541历程】按键发送键值到APP端
- 【cc2541历程】流水灯
- 【cc2541历程】APPPWM调光
- 【cc2541历程】ds18B20
- 【cc2541历程】dht11
- 【BLE】CC2541之按键
- CC2541 按键 Message
- CC2541的按键
- CC2541 自定义按键
- CC2541 自定义按键
- 【cc2541历程】APP控制LED
- 【BLE】CC2541之自定义按键
- 【cc2541历程】创建一个CC2541协议栈的工程文件
- 【cc2541历程】ds18b20发送数值到App
- 【cc2541历程】APP更改蓝牙设备名称
- 【BLE】CC2541之自定义长短按键
- JS数组 学习笔记
- Python使用UUID库生成唯一ID
- 南阳理工acm16矩形嵌套
- npm 安装angular-cli
- CentOS下支持挂载exFAT与NTFS文件系统
- 【cc2541历程】按键
- 冒泡排序
- blog
- F
- Windows 10 创意者更新-1703所有版本汇总
- Looooops
- 检测VC++Redistributable运行库 & vcredist_x86.exe
- Android View动画整理
- selectSingleNode出现ClassNotFoundException