【cc2541历程】按键发送键值到APP端

一、简介

本文在工程SimpleBLEPeripheral的基础上,实现按键发送相应的键值到手机APP端.

二、开发平台

编译环境:IAR820.02
协议栈:BLE-CC254x-1.4.0
程序编辑器:Source Insight 3.5
APP:Smart
硬件平台:SmartRF开发板
三、编写声明
淘宝小店:https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4023-16306486995.5.hdKUUO&id=548576956486
四、实验前提
1)先实现以下历程:
【cc2541历程】按键:http://blog.csdn.net/wangjiawu7/article/details/71075395
五、相关电路
1)独立按键
【cc2541历程】按键发送键值到APP端
2)五向按键
【cc2541历程】按键发送键值到APP端
六、实验过程:
1)将simpleBLEPeripheral_HandleKeys函数(simpleBLEPeripheral.c)修改为:
static void simpleBLEPeripheral_HandleKeys( uint8 shift, uint8 keys )
{
(void)shift; // Intentionally unreferenced parameter
uint8 SK_Keys = keys;
HalLcdWriteStringValue( "key = 0x", keys, 16, HAL_LCD_LINE_2 );
// smartRF开发板上的S1 对应我们源码上的HAL_KEY_SW_6
if ( keys & HAL_KEY_SW_6 )
{
HalLcdWriteString( "HAL_KEY_SW_6", HAL_LCD_LINE_3 );
}
if ( keys & HAL_KEY_UP )
{
HalLcdWriteString( "HAL_KEY_UP", HAL_LCD_LINE_3 );
}
if ( keys & HAL_KEY_LEFT )
{
HalLcdWriteString( "HAL_KEY_LEFT", HAL_LCD_LINE_3 );
}
if ( keys & HAL_KEY_RIGHT )
{
HalLcdWriteString( "HAL_KEY_RIGHT", HAL_LCD_LINE_3 );
}
if ( keys & HAL_KEY_CENTER )
{
HalLcdWriteString( "HAL_KEY_CENTER", HAL_LCD_LINE_3 );
}
if ( keys & HAL_KEY_DOWN )
{
HalLcdWriteString( "HAL_KEY_DOWN", HAL_LCD_LINE_3 );
}
SK_SetParameter( SK_KEY_ATTR, sizeof ( uint8 ), &SK_Keys );//发送相应的键值
}
2)在SimpleBLEPeripheral_Init函数(simpleBLEPeripheral.c)添加:
SK_AddService( GATT_ALL_SERVICES ); // Simple Keys Profile
【cc2541历程】按键发送键值到APP端
3)添加相应的头文件(simpleBLEPeripheral.c)中:
#include "simplekeys.h"

【cc2541历程】按键发送键值到APP端
4)修改连接间隔时间,时间越短,接收数据越多
// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 8//80间隔时间
// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 8//800间隔时间

【cc2541历程】按键发送键值到APP端
5)设置IAR编译环境:
1、在IAR工程中的option选项 添加相应的keys文件路径:
设置IAR的option选项(protect->c/c++Compiler->preprocessor)添加
$PROJ_DIR$\..\..\Profiles\keys
【cc2541历程】按键发送键值到APP端
2、相应的头文件simplekeys.h和simplekeys.c被隐藏了,在编译环境IAR中设置它们为显示,否则会编译出错。。
1)在编译环境右边的Workspace中选择PROFILES文件,下拉列表选择选择simplekeys.c(simplekeys.h同理).
接着右键选择option选项把左上角Exclude from buil 的勾去掉,然后选择确定。【cc2541历程】按键发送键值到APP端
3、编译无误,下载。连接APP,手机APP接收到了板子相应的键值。实验ok。
【cc2541历程】按键发送键值到APP端

作者:爱已oО欠费

相关CC2541群:606444519