我想要在嵌入式系统上使用成熟的蓝牙堆栈的建议。它必须轻巧且占用空间相对较小。
最好它也是开源的,支持 BLE 并且可以在没有操作系统的情况下运行。但这些并不是严格要求的。
它不一定是免费的。它也将用于商业用途。
我正在运行一个 STM32 处理器 (ARM),它应该直接支持或者足够通用,以便于移植。
亲切的问候
Apache 现在有一个名为NimBLE的开源 BLE 堆栈,可在其MyNewt操作系统上运行。它在 nRF5x 芯片上运行,是唯一一个模糊完整的开源 BLE 堆栈。我还没有尝试过,但它看起来很不错。
编辑:我试过了。截至目前(2016 年 9 月),它确实有效 - 您可以读取/写入/通知特征等。有一些缺失的功能,但它绝对是可用的。
请注意,代码写得非常好(例如,他们甚至记录了哪些函数在中断上下文中运行!)但它是经典的 C89,因此有很多手动内存管理、令人担忧的指针魔术、信任数组长度等等。newt
他们的构建系统也不支持 C++ 。
您使用的是什么蓝牙芯片或模块?
您可能会发现芯片制造商可以为您提供嵌入式 BT 堆栈。
例如,优质蓝牙 4.0 芯片的供应商 CSR(剑桥硅无线电)有一款名为 Synergy 的产品,它是用于嵌入式设备的 BT 堆栈。有一个 Android 和一个 WinCE 版本,但也有一个核心版本,它已经并且可以移植到许多不同的操作系统和硬件平台。
www.csrsupport.com
我认为博通也生产 BT 芯片。
你可以看看 Smalltooth。它针对 PIC24 和 PIC32,但可能适用于 ARM。 SmallTooth 蓝牙堆栈是一个开源蓝牙堆栈,从头开始编码,并考虑了嵌入式设备。
请在http://bluekitchen-gmbh.com上查看我们的 BTstack 蓝牙堆栈
它似乎可以满足您的所有要求。