问1,主机如何清除绑定地址?
Gapbondmgr.c (ble-cc254x-1.3.2\projects\ble\profiles\roles):
VOID GAPBondMgr_SetParameter( GAPBOND_ERASE_ALLBONDS, 0, NULL );
执行以上的函数即可 (已验证)。
问2,我也按照你文档的要求替换 Hal_lcd.c 了, 但为什么从机Oled显示屏不亮但主机是亮的?这个是编译选项的问题,,刚安装完IAR以及协议栈后打开主机的工程
C:\Texas Instruments\BLE-CC254x-1.3.2\Projects\ble\SimpleBLECentral
默认的是CC2541DK-mini keyfob的编译选项,而我们的开发板是兼容于TI官方的smartrf开发板的,因此,修改成下图的红色即可:
如果是cc2541的核心板子, 就选择cc2541,
如果是cc2540的就选cc2540。
问3,SimpleBLECentral和SimpleBLEPeripheral断开连接后,会显示"Disconnected Reason:22",这个22或者63等代表什意思?
答: 错误码定义于:BLE-CC254x-1.3.2\Components\ble\controller\include 路径下的 ll.h 文件:
代码截图如下,注意,代码中的是16进制,而LCD上显示的是10进制
其中 22: 16进制就是 0x16
#define LL_STATUS_ERROR_HOST_TERM 0x16 // Connection Terminated By Local Host
是主机断开连接的原因
其中 63: 16进制就是 0x3f
#define LL_STATUS_ERROR_CONN_TIMING_FAILURE 0x3F // MAC Connection Failed
是MAC地址连接失败连接的原因, 如果距离比较远或者信号比较差, 就会导致这个连接断开并报告原因。
问4,IAR编译出来的bin文件有多大怎么看?
答: 看如图的文件即可:
问6: 开发板的五向按键 center 被误认为 right ?(9.20日后出货的开发板默认带的固件)
答复: 由于我们电路上用了 PL2303-hx, 该芯片带有vcc3.3v输出(实际输出达到3.4V左右), 并且该输出与我们的开发板的ldo的3.3v输出是连接起来的, 导致核心板的vcc达到了3.4v, 而5向按键实际上是adc采样得到各个键值的,该采样的参考电压本应是3.3v的AVDD, 而现在AVDD变成了3.4v, 并且5向按键的分压也随之升高, 导致开发板的五向按键 center 被误认为 right 。我们可以稍微改动一下代码,即可避免.
修改如下:
文件: Hal_key.c (components\hal\target\cc2540eb)
函数: uint8 halGetJoyKeyInput(void)
第450行:
uint8 halGetJoyKeyInput(void)
{
/* The joystick control is encoded as an analog voltage.
* Read the JOY_LEVEL analog value and map it to joy movement.
*/
uint8 adc;
uint8 ksave0 = 0;
uint8 ksave1;
/* Keep on reading the ADC until two consecutive key decisions are the same. */
do
{
ksave1 = ksave0; /* save previouse key reading */
adc = HalAdcRead (HAL_KEY_JOY_CHN, HAL_ADC_RESOLUTION_8);
if ((adc >= 2) && (adc <= 38))
{
ksave0 |= HAL_KEY_UP;
}
else if ((adc >= 74) && (adc <= /*88*/86))
{
ksave0 |= HAL_KEY_RIGHT;
}
else if ((adc >= 60) && (adc <= 73))
{
ksave0 |= HAL_KEY_LEFT;
}
else if ((adc >= 39) && (adc <= 59))
{
ksave0 |= HAL_KEY_DOWN;
}
else if ((adc >= /*89*/87) && (adc <= 100))
{
ksave0 |= HAL_KEY_CENTER;
}
} while (ksave0 != ksave1);
return ksave0;
}
截图如下:
问7、BLE Client往Server发送信息,如何强制打开Notify通知呀
这个问题在 主从一体串口透传的哪个例程里有?

file:///D:\Program Files\Tencent\QQ\Users\11940507\Image\C2C\4NEI00$2%K94O0D8)H]6FZJ.jpg
问8、串口是否有在线升级的方法?
这个目前我们没有这个例程, 不过官方有:路径如下:

[img]file:///D:\Program Files\Tencent\QQ\Users\11940507\Image\C2C\6(O%%9I}Y4$3YML_@[P]W$H.png[/img]
Gapbondmgr.c (ble-cc254x-1.3.2\projects\ble\profiles\roles):
VOID GAPBondMgr_SetParameter( GAPBOND_ERASE_ALLBONDS, 0, NULL );
执行以上的函数即可 (已验证)。
问2,我也按照你文档的要求替换 Hal_lcd.c 了, 但为什么从机Oled显示屏不亮但主机是亮的?这个是编译选项的问题,,刚安装完IAR以及协议栈后打开主机的工程
C:\Texas Instruments\BLE-CC254x-1.3.2\Projects\ble\SimpleBLECentral
默认的是CC2541DK-mini keyfob的编译选项,而我们的开发板是兼容于TI官方的smartrf开发板的,因此,修改成下图的红色即可:
如果是cc2541的核心板子, 就选择cc2541,
如果是cc2540的就选cc2540。
问3,SimpleBLECentral和SimpleBLEPeripheral断开连接后,会显示"Disconnected Reason:22",这个22或者63等代表什意思?
答: 错误码定义于:BLE-CC254x-1.3.2\Components\ble\controller\include 路径下的 ll.h 文件:
代码截图如下,注意,代码中的是16进制,而LCD上显示的是10进制
其中 22: 16进制就是 0x16
#define LL_STATUS_ERROR_HOST_TERM 0x16 // Connection Terminated By Local Host
是主机断开连接的原因
其中 63: 16进制就是 0x3f
#define LL_STATUS_ERROR_CONN_TIMING_FAILURE 0x3F // MAC Connection Failed
是MAC地址连接失败连接的原因, 如果距离比较远或者信号比较差, 就会导致这个连接断开并报告原因。
问4,IAR编译出来的bin文件有多大怎么看?
答: 看如图的文件即可:
问5: BLE协议栈的系统节拍时钟用的是哪个定时器? 答复: 请看下图: timer3 |
问6: 开发板的五向按键 center 被误认为 right ?(9.20日后出货的开发板默认带的固件)
答复: 由于我们电路上用了 PL2303-hx, 该芯片带有vcc3.3v输出(实际输出达到3.4V左右), 并且该输出与我们的开发板的ldo的3.3v输出是连接起来的, 导致核心板的vcc达到了3.4v, 而5向按键实际上是adc采样得到各个键值的,该采样的参考电压本应是3.3v的AVDD, 而现在AVDD变成了3.4v, 并且5向按键的分压也随之升高, 导致开发板的五向按键 center 被误认为 right 。我们可以稍微改动一下代码,即可避免.
修改如下:
文件: Hal_key.c (components\hal\target\cc2540eb)
函数: uint8 halGetJoyKeyInput(void)
第450行:
uint8 halGetJoyKeyInput(void)
{
/* The joystick control is encoded as an analog voltage.
* Read the JOY_LEVEL analog value and map it to joy movement.
*/
uint8 adc;
uint8 ksave0 = 0;
uint8 ksave1;
/* Keep on reading the ADC until two consecutive key decisions are the same. */
do
{
ksave1 = ksave0; /* save previouse key reading */
adc = HalAdcRead (HAL_KEY_JOY_CHN, HAL_ADC_RESOLUTION_8);
if ((adc >= 2) && (adc <= 38))
{
ksave0 |= HAL_KEY_UP;
}
else if ((adc >= 74) && (adc <= /*88*/86))
{
ksave0 |= HAL_KEY_RIGHT;
}
else if ((adc >= 60) && (adc <= 73))
{
ksave0 |= HAL_KEY_LEFT;
}
else if ((adc >= 39) && (adc <= 59))
{
ksave0 |= HAL_KEY_DOWN;
}
else if ((adc >= /*89*/87) && (adc <= 100))
{
ksave0 |= HAL_KEY_CENTER;
}
} while (ksave0 != ksave1);
return ksave0;
}
截图如下:
问7、BLE Client往Server发送信息,如何强制打开Notify通知呀
这个问题在 主从一体串口透传的哪个例程里有?

file:///D:\Program Files\Tencent\QQ\Users\11940507\Image\C2C\4NEI00$2%K94O0D8)H]6FZJ.jpg
问8、串口是否有在线升级的方法?
这个目前我们没有这个例程, 不过官方有:路径如下:

[img]file:///D:\Program Files\Tencent\QQ\Users\11940507\Image\C2C\6(O%%9I}Y4$3YML_@[P]W$H.png[/img]