蓝牙通用

[English]

示例

原先按目标芯片划分的 HCI over UART 控制器示例已被统一为一个示例 bluetooth/hci/controller_hci_uart,该示例支持所有提供 HCI over UART 的目标芯片:

已移除的示例

原先覆盖的目标芯片

examples/bluetooth/hci/controller_hci_uart_esp32

ESP32

examples/bluetooth/hci/controller_hci_uart_esp32c3_and_esp32s3

ESP32-C3、ESP32-S3

examples/bluetooth/nimble/hci

ESP32-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 传输层现在由控制器提供,不再由应用程序实现。启用新增选项 CONFIG_BT_CTRL_HCI_UART_INIT_BY_CONTROLLER 后,esp_bt_controller_init() 会使用 HCI UART(H4) Options 菜单下的配置安装该传输层并填充 esp_bt_controller_config_t::hci_tl_funcs,相关配置包括 CONFIG_BT_CTRL_HCI_UART_PORT、CONFIG_BT_CTRL_HCI_UART_BAUDRATE、CONFIG_BT_CTRL_HCI_UART_FLOW_CTRL_EN 以及 TX、RX、RTS 和 CTS 引脚。

基于 controller_hci_uart_esp32c3_and_esp32s3 开发的应用程序原先通过 LL 和寄存器访问在自己的源文件中实现该传输层。请删除这部分代码,改为启用 CONFIG_BT_CTRL_HCI_UART_INIT_BY_CONTROLLER。

选择 CONFIG_BT_CTRL_HCI_MODE_UART_H4 时,esp_bt_controller_init() 要求提供 esp_bt_controller_config_t::hci_tl_funcs,或启用 CONFIG_BT_CTRL_HCI_UART_INIT_BY_CONTROLLER,否则会报告传输层缺失并返回 ESP_ERR_INVALID_ARG。

针对直接测试模式,CONFIG_BT_CTRL_HCI_UART_DTM_MODE 会将 HCI UART 配置为不使用硬件流控。/bt/include/esp32c3/include/esp_bt.h 中新增的 esp_bt_hci_uart_reconfig_pin() 函数可在运行时修改 TX 和 RX 引脚。


此文档对您有帮助吗?