打印
[STM32L5]

【STM32L562E-DK试用】第4辑:板载蓝牙的体验

[复制链接]
135|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
       这个开发板还支持无线通信功能,使用的是一个板载的蓝牙模块,就是下面这个小家伙:
       这个也是一款ST的蓝牙模块——SPBTLE-RFTR,STMicroelectronics BlueNRG-M0蓝牙®网络处理器模块是一款符合蓝牙4.2规范的主/从网络处理器模块。该模块具备多功能性,可同时作为低功耗蓝牙传感器和集线器器件使用。BlueNRG-M0模块内置完整的低功耗蓝牙堆栈和协议,并通过标准SPI接口与外部主机应用处理器连接。其特性包括:符合蓝牙4.2规范、支持主机和从机模式、内置低功耗蓝牙协议栈(GAP、GATT、SM、L2CAP、LL、RFPHY)、单独提供低功耗蓝牙配置文件、嵌入式ST BlueNRG-MS网络处理器、输出功率高达+8dBm、RX灵敏度低至-88dBm、高达96dB的链路预算、出色的链路可靠性、主机接口(SPI、IRQ和RESET)、可通过SPI现场堆栈升级、AES安全协处理器认证、CE标准认证、通过FCC和IC模块化认证、符合TYPE和BQE标准、板载芯片天线、工作电压1.7V至3.6V、工作温度范围-40°C至+85°C、尺寸11.5mm x 13.5mm。在原理图中可以看到:
       上图可以看出,实际上这款蓝牙模块使用的就是SPI进行的通信,对应的是SPI1,由于蓝牙通信协议的限制,我们这里还是使用提供的路程进行体验,一般的蓝牙模块都会有有个初始化的过程,最后启动透传实现和上位机的通信。
       我们可以打开“BLE”的例程文件,会发现这次并没有看待基于STM32CubeMX的工程文件,这是怎么回事呢?包括SPI的例程也没有,这是认为SPI的接口太简单了吗?
       不过也不用太有顾虑,实际上我们实现的蓝牙模块的操作一般都是通过串行接口进行的,最后也是通过无线的方式透传发出去,咱们直接看一下程序内容,在hr.c中定义了蓝牙模块广播的名字:
static const char local_name[] = {AD_TYPE_COMPLETE_LOCAL_NAME,'S','T','M','3','2','L','5','6','2','E','-','D','K'};

       通过中断的方式进行通知的接受,发送和接受全部是DMA的方式进行:
       硬件部分使用了这些模块:
       打开手机上的蓝牙调试软件进行搜索:
       接下来打开Heart Rate通道,可以看到变化:
       由于我们对这个蓝牙模块不是特别熟悉,所以也没有进行修改,只是进行了一下体验,这一部分实际上使用WBA系列的对应的蓝牙SOC体验会更好,蓝牙模块可以直接进行移植,注意不要和对应的MX生成的接口冲突就可以。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:硬件工程师
简介:有着多年硬件开发经验的专业人员,专注于医疗电子领域,热衷于对新鲜事物的探索,喜欢DIY!

409

主题

2147

帖子

10

粉丝