-1

我是蓝牙开发新手,我希望通过 uart 将 ST STM32F4 MCU 连接到蓝牙模块。

MCU 必须具有 HCI 实现来配置和管理蓝牙模块。

是否有关于在 ST STM32F4 上实现上述 HCI 的开源蓝牙堆栈的任何建议?

谢谢!

4

1 回答 1

0

我之前对可用于 MCU 的开源蓝牙堆栈进行了研究。首先,我认为即使它不支持 STM32F4,移植 HCI 蓝牙堆栈也应该很容易,因为唯一依赖于平台的层是 HCI 传输层,并且实现传输层不会太难,因为它使用 UART。但我意识到这比我想象的要难,原因我稍后会提到。

我发现了三个蓝牙堆栈:

  1. NimBle(MyNewt RTOS 的蓝牙堆栈),Apache 许可证
  2. Zephyr RTOS 蓝牙堆栈, Apache 许可证
  3. BTstack,类似 BSD 的许可证,未经许可不得用于商业用途。

前两件事与它们自己的 RTOS 紧密耦合。它们是去年推出的全新 RTOS,针对物联网市场。您可能会被迫坚持使用他们的 RTOS,并且他们的外围支持还不成熟。虽然它们都支持部分 STM32F4,但使用 STM32F4 外设的全部功能可能会遇到问题。然而,这两个 RTOS 都非常有前途,因为 MyNewt 是一个 Apache 基金会项目,而 Zephyr OS 是一个由英特尔管理的 Linux 基金会项目。所以他们两个在未来都是一个不错的选择,但在我写的那一刻可能还没有生产就绪(对于 STM32)。顺便说一下,它们只支持BLE,不支持蓝牙EDR(如蓝牙音频)

最后一个,BTstack,仅针对裸机设备上的纯双模蓝牙堆栈。唯一的问题是它的许可证类似于 BSD,带有一个额外的条款,只允许将其用于非商业项目。所以 AFAIK 它与 Apache 和 GPL 许可证不兼容,您必须为商业项目付费。

我希望它会有所帮助。

于 2017-05-18T11:44:00.963 回答