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