968|2

141

帖子

4

TA的资源

一粒金砂(中级)

楼主
 

【Microchip WBZ451 Curiosity】7.蓝牙BLE开发 [复制链接]

本帖最后由 Tristan_C 于 2023-8-26 17:03 编辑

一、前言
前面几篇体验了开箱、环境搭建、开发、基础外设的使用等,本次体验一下开发板的主要无线功能之一:BLE开发。作为功能强劲的BLE SoC芯片,WBZ451具备BLE和ZigBee等主流的无线近距离通信协议。文中描述其用户自定义Customer Service方式进行交互的设计。Demo的主要功能是按钮按下,切换LED状态,并上报状态给App,而App则可以下发指令,改变RGB LED亮起时的颜色(通过RGB三个字节各自的颜色配置)。

二、准备

  1. WBZ451开发板
  2. 电脑
  3. 手机BLE App,如Light Blue

三、代码及运行

  1. 首先打开如下功工程

    打开之后可以看到其工程目录结构如下,主要包括了FreeRTOS及其Task、Crypt,还包括custom service等一些BLE相关信息,以ble应用层的处理,在app和app_ble中。
  2. 点开Project Graph

可以看到项目包含的组件就比较多而复杂了。其中包括

  1. 芯片相关的Core、EVSYS、DFP、System以及RTC、SCOMM、NVM、EIC等
  2. 板子模块相关的WBZ451 Curiosity BSP
  3. 操作系统相关的FreeRTOS、CMSIS Pack
  4. BLE协议栈相关的BLE Stack等
  5. 用于串口打印的Console等

  1. 点开BLE Stack

可以重点关注几点

  1. Enable Sleep Mode:因为很大一部分BLE设备的应用是低功耗的,因此这项配置一般会需要配置选中。
  2. GAP部分

其中就包括了:

Device Name设备名称:此处DEMO为Microchip,另外还可以配置名称可配重写

Advertising广播部分:包括了是否开启扩展广播,广播功率,广播周期,广播信道配置,广播包内容

扫描应答的数据内容与广播的内容基本相同,一般可以选择较长的数据放在扫描应答中,以节省广播功耗

在GATT配置中应将Enable Client Role去掉。

在GAP Role选择时,需要选择Peripheral从机设备

其余选择默认值即可。

  1. 点开Custom Service

    首先是添加Service的个数,此处添加一个测试service

    Service名称为button_led,并填写UUID,一般UUID为16位或者128位,填写时以小端十六进制格式填入。

    再选择需要添加啊Characteristic特征值的个数,此处选择2个,分别是按键按下的上报Notify和LED操作的下行Write

    首先就是上报的Notify Characteristic,其权限Properties为Notify,当然可以增加选择配置为Read,被对方读取。另外还可以看到分配到的128位的UUID。特征值的初始值位0,当按键按下时,上报改变的就是这个值。

    接下去就是下行的Characteristic了,其权限为Write with response,也就是带应答要求的write,当然,此处也可以选择增加read权限。其初始值为0x00FF00,三个字节没分别表示RBG等的R、G和B三个颜色的值。App要下发改变RGB LED灯亮起颜色就是通过write这个值实现。
  2. 配置妥当之后,点击Generate生成代码。
  3. 在app.c文件中,就有设备状态的吹里,其中APP_STATE_INIT为初始化完成,而APP_STATE_SERVICE_TASKS则是service各数据交互操作的分支了

其中又包括了:

  1. APP_MSG_BLE_STACK_EVT:协议栈状态处理,其中还包括设备链接状态改变的connected和disconnected的处理。

  2. APP_MSG_BLE_CS_LED_EVT:app下行写数据的处理,主要就是写入RGB三字节的数据处理配置。
  3. APP_MSG_BLE_CS_BUTTON_EVT:按钮的处理按下的功能,包括改变RGB LED的亮灭,并调用APP_CustomService_SendNotification函数上报Notifacition数据给app。

四、编译下载运行

运行之后板载蓝色单独LED亮起,RGB灯灭

按下按钮,独立LED和RGB灯分别在亮灭之间切换。

打开Light Blue,可以扫描到名称为microchip的设备

点击链接,成功之后可以看到对应的服务被发现。

此时点开 ADVERTISEMENT DATA后面的show按钮,可以看到完整的扫描数据内容,其中包括了Local Name广播包中的设备名称

而点开第一个Characteristic,然后可以点击其后的Listen for notification即可使能Notify,即订阅成功。

此时按下开发板上的按钮,除了板子上的LED亮灭之后还可以看到App上收到了开发板报上来的0x01和0x00了。

点开第二个Characteristic,可以看到初始值0x00FF00,此时我们可以写入0x0000FF,也就是开发板上按下按钮之后RGB亮蓝灯

此时按下按钮,RGB亮的颜色变成蓝色

如果想让RGB亮起颜色变成红色,则写入0xFF0000即可,如下两图。

五、小结

从上面整个方法和流程来看,Microchip的这套MPLAB X结合MCC Harmony的方式还是非常强大的,尤其是结合图形化的开发方式,可快速设计出所需要的外设,BLE的各项配置等等,可以免去很多的底层开发,而更加关注于产品应用的设计开发。

此帖出自RF/无线论坛

最新回复

结合图形化的开发方式,可快速设计出所需要的外设,BLE的各项配置,这种玩法挺好,实用   详情 回复 发表于 2023-8-27 21:46
点赞 关注
 

回复
举报

6587

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

结合图形化的开发方式,可快速设计出所需要的外设,BLE的各项配置,这种玩法挺好,实用

此帖出自RF/无线论坛

点评

要是MPLAB X结合mcc能不要那么卡就更好了  详情 回复 发表于 2023-8-27 22:52
 
 

回复

141

帖子

4

TA的资源

一粒金砂(中级)

板凳
 
Jacktang 发表于 2023-8-27 21:46 结合图形化的开发方式,可快速设计出所需要的外设,BLE的各项配置,这种玩法挺好,实用

要是MPLAB X结合mcc能不要那么卡就更好了

此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
ADSL 拨号错误代码分析

· Error 602 The port is already open指定的端口已打开 ...

大量单片机资料下载(收集了几年的东西)(里面绝对有你想找的)

大量单片机资料下载 废话不多说 上资料 1.KEIL入门学习的好资料 本帖最后由 melodyooo 于 2010-3-19 16:38 编辑 ]

helper2416_modbus_主从机测试_支持TCP/RTU

Modbus是一种串行通信协议,是Modicon于1979年为使用可编程逻辑控制器PLC而发表的. MODBUS是工业领域通信协议的业界标准,并且现 ...

【SAMR21新玩法】汇总

本帖最后由 dcexpert 于 2019-10-18 11:36 编辑 436737 与传统开发方法不同的用法,不需要IDE和编译器,使用python和图形 ...

Arduino发布 v1.8.11 版本

457463 https://www.arduino.cc/en/main/software

TI SimpleLink™ 无线 MCU 的恒温器参考设计

510581510582 大多数智能恒温器设计人员都希望设计出低功耗、联网、基于微控制器 (MCU) 并可将各种传感器安全地连接到云(从 ...

在MDK中如何生成bin格式的文件

在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有 ...

【大学生电子竞赛题目分析】——2016年上海市TI杯B题 《短波频段数字通信系统设计》

一、任务 设计一个短波频段全数字收发通信演示系统,要求通信调制模式采用BPSK调制方式,调制符号率固定,调制载波通过程序设 ...

全志异核多构 AI智能视觉V853开发板测评 - V853 camera 媒体启动流程总结

全志V853 的相机的媒体的启动流程基本和瑞芯微的RV1109/RV1126 是类似的,以下是我总结的V853的camera媒体启动的流程: 6 ...

形影不离的好兄弟—X电容和Y电容

前言 只要是接有220V的电路板,一般都会看见安规电容的存在,黄色的是X电容,蓝色的是Y电容。 832090 ...

快速回复 返回顶部 返回列表