微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 定义按键发送特征不能识别的到问题

定义按键发送特征不能识别的到问题

时间:10-02 整理:3721RD 点击:
我在做一个蓝牙点灯的小实验,具体思路是:主机注册按键事件,然后通过发送按键sw1/sw2不同的特征值uuid来控制从机小灯的亮灭。但是事实上小灯并没有反应,是我的数据没有发送过去还是我的程式有问题呢?麻烦大家帮我看看,类似一个无线开关功能的东西。 主机:uint8 gStatus; static void simpleBLECentral_HandleKeys( uint8 shift, uint8 keys ){ (void)shift; // Intentionally unreferenced parameter if ( keys & HAL_KEY_SW_1 ) { NPI_WriteTransport("KEY K1\n",7); // Do a write attWriteReq_t req; req.handle = simpleBLECharHdl; req.len = 1; req.value[0] = 0x00; req.sig = 0; req.cmd = 0; GATT_WriteCharValue( simpleBLEConnHandle, &req, simpleBLETaskId ); } if ( keys & HAL_KEY_SW_2 ) { NPI_WriteTransport("KEY K2\n",7); // Do a write attWriteReq_t req; req.handle = simpleBLECharHdl; req.len = 1; req.value[0] = 0xff; req.sig = 0; req.cmd = 0; GATT_WriteCharValue( simpleBLEConnHandle, &req, simpleBLETaskId ); }} 从机我用CHAR1来接收主机发送过来的特征值: case SIMPLEPROFILE_CHAR1: SimpleProfile_GetParameter( SIMPLEPROFILE_CHAR1, &newValue ); #if (defined HAL_LCD) && (HAL_LCD == TRUE) HalLcdWriteStringValue( "Char 1:", (uint16)(newValue), 10, HAL_LCD_LINE_3 ); #endif // (defined HAL_LCD) && (HAL_LCD == TRUE) if(newValue) { HalLedSet(HAL_LED_1, HAL_LED_MODE_ON ); } else { HalLedSet(HAL_LED_1, HAL_LED_MODE_OFF ); } break; 各位帮帮我看看,或者给我出出主意改怎么弄一个无线的控制端

看起来有两部分可能会导致点灯失败。

建议首先判断一下是否特征值有根据操作改变,如果这部分没有问题就再判断一下是否是开关灯的代码有误。

把BLE的操作和LED的操作剥离开会比较容易定位问题

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

网站地图

Top