蓝牙通用

[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 传输层。因此,基于被移除示例开发的应用程序需要相应调整:

HCI UART 引脚现在由控制器而非应用程序配置。启用新增选项 CONFIG_BTDM_CTRL_HCI_UART_INIT_BY_CONTROLLER 后,esp_bt_controller_init() 会使能 HCI UART 与 UHCI 总线时钟,并应用 CONFIG_BTDM_CTRL_HCI_UART_TX_PIN、CONFIG_BTDM_CTRL_HCI_UART_RX_PIN,以及在启用 CONFIG_BTDM_CTRL_HCI_UART_FLOW_CTRL_EN 时应用 CONFIG_BTDM_CTRL_HCI_UART_RTS_PIN 和 CONFIG_BTDM_CTRL_HCI_UART_CTS_PIN。

基于 controller_hci_uart_esp32 开发的应用程序原先需要在调用 esp_bt_controller_init() 之前,自行通过 uart_ll_enable_bus_clock()、uhci_ll_enable_bus_clock() 和 uart_set_pin() 使能这些时钟并配置 UART 引脚。请删除这部分代码,改为启用 CONFIG_BTDM_CTRL_HCI_UART_INIT_BY_CONTROLLER。如果应用程序需要自行管理 HCI UART,请保持该选项为关闭状态。启用该选项后,控制器会覆盖应用程序配置的 HCI UART 引脚。


此文档对您有帮助吗?