yibin_cai

    1. 有大佬知道bluenrg_2 订阅特征值的时候,为啥要在特征值上+2 1/1987 意法半导体-低功耗射频 2022-07-01
      订阅的本质是往表示“特征描述符”的属性值上写 0x0100。 一个具有订阅属性的特征至少需要由 3 条属性来描述: 0x000A 特征声明属性 // 我是特征 0x000B 特征值属性 // 这个特征的值 0x000C 特征描述符属性 // 这个特征的一些属性 特征描述符相对于与特征声明,handle 需要偏移 2
    2. 基于ST官网给出BlueNRG-lp的范例工程编译不了的问题 13/5251 意法半导体-低功耗射频 2022-06-13
      littleshrimp 发表于 2022-4-16 21:21 我原来只有1.1.0的版本,编译了一下BLE_Beacon例程可以成功 然后我又下载了和你一样的最新版本,编 ...
      最新的 BlueNRG-LP 的 SDK 版本是 1.2.0,刚发布不久,默认用的是 AC6 编译器。 AC6 和 AC5 确实会有一些地方的处理不太一样;用比较新的 Keil 版本不会有问题。   可以把具体的错误提示贴出来,咱一起看看~~
    3. BlueNRG LP 关闭广播,应用程序无法运行? 5/4069 意法半导体-低功耗射频 2021-11-18
      hometown 发表于 2021-11-17 09:36 Hi Moderator:     这边还有一些疑问,在gitee中写到“这里说的睡眠都是瞬间状态的。 ...
      最靠谱、最心里有底的方式是观察电流波形。
    4. bluenrg如何在建立通信的同时,对外发送beacon广播? 11/6013 意法半导体-低功耗射频 2021-11-10
      SENSORTILE 发表于 2021-11-10 14:53 看了啊,我查了,扩展广播是5.0的新特性。。。在我这4.2的sdk中,广播那些api都没有广播句柄,不支持多个 ...
      广播包还是 legacy 的广播包,没有用到扩展广播相关的标志。 上述是借用了扩展广播的”能力“,而没有用到扩展广播包。 BlueNRG-1/2 的 SDK 的蓝牙 API 确实没 BlueNRG-LP 的那么灵活。   但是,BlueNRG-1/2 上,“多从”也是可以实现的。   你可以先发一个可连接广播出来;连上之后,再执行上述开启广播的步骤(不使用 adv handler),把不可连接广播发出来。 主要调试、实现操作如下: 1. 配置协议栈,使其支持多个链路 2. 实现两个函数:start_connectable_adv();  start_beacon_adv(); 然后单独验证其可行性。 3. 实现流程:先发可连接广播,连接成功后发 beacon 广播,断开连接后再发可连接广播    
    5. bluenrg如何在建立通信的同时,对外发送beacon广播? 11/6013 意法半导体-低功耗射频 2021-11-10
      首先可以确认的是你提及的应用场景是可以实现的,即先发送可连接广播,连接后再同时地发送不可连接广播。   需要先说明的是,发送广播的步骤为: 1. 配置广播参数:aci_gap_set_advertising_configuration 2. 提供广播数据:aci_gap_set_advertising_data  3. 使能广播:aci_gap_set_advertising_enable   以上步骤,可在每一个广播链路(L2CAP 层)上启用,每个广播链路,通过 Advertising_Handle 来标识。 你在上述三个 API 中都可以找到 Advertising_Handle 参数。   对于你的应用场景,你可以先使能扩展广播 (EXTENDED_ADV ),然后: 一、 1. aci_gap_set_advertising_configuration(0, ...) // 可连接广播 2. aci_gap_set_advertising_data (0, ...) 3. aci_gap_set_advertising_enable(0, ...) 二、 1. aci_gap_set_advertising_configuration(1, ...) // 不可连接广播 2. aci_gap_set_advertising_data (1, ...) 3. aci_gap_set_advertising_enable(1, ...) 来实现。
    6. BlueNRG-LP HID KEYBOARD例子PC端无法正常使用 25/6688 意法半导体-低功耗射频 2021-09-23
      Hello, 我在我的开发板上测到了这个问题。官方 SDK 虽然把 HID profile 打包成了 lib, 但 lib 开放的 API 的灵活性还是可以的。 目前主要考虑几个调试方向: 1. 检查 report map,看 PC 端是否有特殊的要求,满足了才能对该 report map 枚举成功。 2. 检查 HID 相关配置。映射到 GATT 上,主要包括: boot report,input/output report 相应的特征的配置 3. report 格式,发送 report 时的一些注意事项等 4. SMP 相关的配置,是否 PC 端对安全等级有特殊的要求 5. 蓝牙版本、系统版本问题? 问题有眉目了,会发上来。
    7. Bluenrg-2N开发 8/5659 意法半导体-低功耗射频 2021-06-09
      qiyuan 发表于 2021-6-8 19:29 感谢大佬的回复,坐等另一个大佬的指点了!!
      参考这篇文档:
    8. 我写了篇文档,可以参考一下:
    9. 为什么BLE Sensor APP要获取我的位置权限? 5/6263 意法半导体-低功耗射频 2021-06-03
      赞赞赞,又学到了个新“姿势”!
    10. 关于初始化问题 9/4980 意法半导体-低功耗射频 2021-03-15
      千本樱大白 发表于 2021-3-12 17:31 嗯嗯,就是想表达0x06时没有0a001的service,并且也添加不了多一个UUID 代码就是\BlueNRG-1_2 DK 3.2. ...
      服务的 database 在协议栈中是静态内存,而不是在 add_service 的时候动态申请的。   因此, add_service 之前,协议栈初始化(BlueNRG_Stack_Initialization)的时候,就需要明确指明整个 database 的大小——依据需要,正确配置以下宏即可: NUM_GATT_ATTRIBUTES  
    11. BlueNRG-2 OTA升级为砖头问题 8/4608 意法半导体-低功耗射频 2021-03-09
      本帖最后由 yibin_cai 于 2021-3-9 14:25 编辑
      Roy_LDH 发表于 2021-3-8 14:18 谢谢你的建议,这个建议我有想到过,但是我的客户想在下位机固件去避免因选错.bin文件的问题; 目前我 ...
      在进行真正的固件数据传输之前, 发送端会通过 new image characteristic 发送新固件信息:image base(新固件地址), image size 我们可以判断 image base 所在的区域的标志位,如果是 OTA_VALID_TAG,说明新固件所属区域和本地固件所在区域冲突了, 判断方式如下: void OTA_Write_Request_CB(uint16_t connection_handle, uint16_t attr_handle, uint8_t data_length, uint8_t *att_data) { tBleStatus ret; uint16_t k; conn_handle = connection_handle; if (attr_handle == (btlNewImageCharHandle + 1)){ erase_flash_done = 0; ota_service_is_disconnected=0; /* Incoming write characteristic to allow master to specify the base address and size * of the firmware image it intends to send. * Get base_address and image size + notification range requested from client. */ imageSize = (uint32_t)(att_data[4] << 24) + (uint32_t)(att_data[3] << 16) + (uint32_t)(att_data[2] << 8) + att_data[1]; imageBase = (uint32_t)(att_data[8] << 24) + (uint32_t)(att_data[7] << 16) + (uint32_t)(att_data[6] << 8) + att_data[5]; notification_range = NOTIFICATION_INTERVAL(att_data[0]); /* Check if the new image already exists */ uint32_t *ota_tag_value = (uint32_t *)(imageBase + OTA_TAG_VECTOR_TABLE_ENTRY_OFFSET); if (*ota_tag_value == OTA_VALID_TAG) { PRINTF("Error! new image exists!\r\n"); } 你可以根据这个判断,选择把设备断开,或反馈错误信息等操作   进一步验证,这个思路不可行。。。   原因在于,image base,是由 firmware 给到 APP 的。再由 APP 下发下来的。并不能作为 fimware_low 和 firmare_high 的标识。即: 假设本地运行的是 firmware_low,则其会告知 APP 有效的升级地址是 firmare_high_address; 固件数据传输完成后,FLASH 两个区域都被填充了 firmare_low 固件。 reset_manager 会跳到 firmare_high_address 去执行 firmware_low,导致死机 firmware_low 和 firmware_high 在链接的时候被分配到了不同的地址 把 firmware_low 放到 flash_high 区域,会因为函数地址错乱导致程序跑飞   本质上,解决该问题的方法是要对 firmware_low 和 firmware_high 的 bin 文件添加一个标识符号,将两者区分开来。 8 楼给出了完整的解决方案      
    12. 关于blueNRG-1芯片运行程序就自动烧掉的问题(已解决) 29/4613 意法半导体-低功耗射频 2020-11-11
      千本樱大白 发表于 2020-11-10 18:04 我的是blueNRG-132这个芯片,没有PA10这个管脚呀
      抱歉以为是 BLUENRG-LP。 关于这个问题,需要现场进行硬件调试才能定位问题,建议联系代理商寻求现场支持。
    13. 关于blueNRG-1芯片运行程序就自动烧掉的问题(已解决) 29/4613 意法半导体-低功耗射频 2020-11-10
      千本樱大白 发表于 2020-11-10 16:16 我写得更加详细在2楼那里,其实是一次都没运行成功,没程序才可以反复连接,有程序就连接不上了
      先不下“芯片已经损坏”的结论。 假设你的问题现象是“芯片无法连接 st-link”   对于该问题,可作以下尝试: 1.  对于官方的开发板,STEVAL-IDB011B1,可按住 PUSH1 按键,然后按 RESET 按键,看是否能连接 ST-link 2. 对于第三方的板子,和开发板的操作方式类似,可给 PA10 IO 一个高电平,然后触发复位,然后释放 PA10 IO。看是否能恢复  ST-link 连接

最近访客

< 1/1 >

统计信息

已有5人来访过

  • 芯积分:78
  • 好友:2
  • 主题:2
  • 回复:13

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言