蓝牙通用
示例
原先按目标芯片划分的 HCI over UART 控制器示例已被统一为一个示例 bluetooth/hci/controller_hci_uart,该示例支持所有提供 HCI over UART 的目标芯片:
已移除的示例
原先覆盖的目标芯片
examples/bluetooth/hci/controller_hci_uart_esp32ESP32
examples/bluetooth/hci/controller_hci_uart_esp32c3_and_esp32s3ESP32-C3、ESP32-S3
examples/bluetooth/nimble/hciESP32-C2、ESP32-C5、ESP32-C6、ESP32-C61、ESP32-H2、ESP32-H21、ESP32-H4、ESP32-S31
上述被移除的目录仅保留一个指向新示例的
README.md。请使用idf.py set-target <target>选择目标芯片。HCI UART 引脚、波特率和硬件流控的默认值与被移除示例所使用的一致,因此无需重新接线。统一后的示例依赖蓝牙控制器提供 HCI UART 传输层。因此,基于被移除示例开发的应用程序需要相应调整:
基于 UHCI 的 HCI UART 传输层现在由控制器提供,不再由应用程序实现。启用新增选项 后,
esp_bt_controller_init()会使用HCI UART(H4) Options菜单下的配置安装该传输层并填充esp_bt_controller_config_t::hci_tl_funcs,相关配置包括 、、 以及 TX、RX、RTS 和 CTS 引脚。基于
controller_hci_uart_esp32c3_and_esp32s3开发的应用程序原先通过 LL 和寄存器访问在自己的源文件中实现该传输层。请删除这部分代码,改为启用 。选择 时,
esp_bt_controller_init()要求提供esp_bt_controller_config_t::hci_tl_funcs,或启用 ,否则会报告传输层缺失并返回ESP_ERR_INVALID_ARG。针对直接测试模式, 会将 HCI UART 配置为不使用硬件流控。/bt/include/esp32c3/include/esp_bt.h 中新增的
esp_bt_hci_uart_reconfig_pin()函数可在运行时修改 TX 和 RX 引脚。