我是蓝牙开发新手,我希望通过 uart 将 ST STM32F4 MCU 连接到蓝牙模块。
MCU 必须具有 HCI 实现来配置和管理蓝牙模块。
是否有关于在 ST STM32F4 上实现上述 HCI 的开源蓝牙堆栈的任何建议?
谢谢!
我之前对可用于 MCU 的开源蓝牙堆栈进行了研究。首先,我认为即使它不支持 STM32F4,移植 HCI 蓝牙堆栈也应该很容易,因为唯一依赖于平台的层是 HCI 传输层,并且实现传输层不会太难,因为它使用 UART。但我意识到这比我想象的要难,原因我稍后会提到。
我发现了三个蓝牙堆栈:
前两件事与它们自己的 RTOS 紧密耦合。它们是去年推出的全新 RTOS,针对物联网市场。您可能会被迫坚持使用他们的 RTOS,并且他们的外围支持还不成熟。虽然它们都支持部分 STM32F4,但使用 STM32F4 外设的全部功能可能会遇到问题。然而,这两个 RTOS 都非常有前途,因为 MyNewt 是一个 Apache 基金会项目,而 Zephyr OS 是一个由英特尔管理的 Linux 基金会项目。所以他们两个在未来都是一个不错的选择,但在我写的那一刻可能还没有生产就绪(对于 STM32)。顺便说一下,它们只支持BLE,不支持蓝牙EDR(如蓝牙音频)
最后一个,BTstack,仅针对裸机设备上的纯双模蓝牙堆栈。唯一的问题是它的许可证类似于 BSD,带有一个额外的条款,只允许将其用于非商业项目。所以 AFAIK 它与 Apache 和 GPL 许可证不兼容,您必须为商业项目付费。
我希望它会有所帮助。