NCS 基于nRF52833芯片集成NFC、蓝牙主从模式并且可通过串口切换蓝牙主从模式并进行数据透传

1、首先我选择的三个官方的demo程序为

1.1、在 路径  \v2.2.0\nrf\samples\nfc\writable_ndef_msg  该NFC工程具备读写能力

1.2、在路径  \v2.2.0\nrf\samples\bluetooth\central_uart   该工程为蓝牙主模式,并且代码中可以通过串口获取数据进行透传

1.3、在路径  \v2.2.0\nrf\samples\bluetooth\peripheral_uart 该工程为蓝牙从模式,并且代码中通过蓝牙接收到的透传数据直接可以通过串口进行打印

1.4、需要注意的文件编辑进来需要在makelist中增减响应的.c文件

2、蓝牙主从代码整理合并

      ncs中对代码的合非常便捷,通过在prj.config文件中开启响应的宏定义便可在编译的时候开启对应的功能模块、我这里是在central_uart 基础上融合另外两个程序的

   2.1、首先需要对三个demo的业务逻辑进行掌握这里推荐官方指导说明、对三个实验说明进行掌握后研读代码逻辑

Bluetooth: Central UART — nRF Connect SDK 2.4.99 documentation (nordicsemi.com)

Bluetooth: Peripheral UART — nRF Connect SDK 2.4.99 documentation (nordicsemi.com)

NFC: Writable NDEF message — nRF Connect SDK 2.4.99 documentation (nordicsemi.com)

  2.2、开始合并蓝牙主从模式

    首先直接将center_uart工程名称变更为自己的目标名称 我命名为 ble_cen_per_uart

    首先将 peripheral_uart工程中prj.conf中的CONFIG统复制到    ble_cen_per_uart程中的prj.conf 中并且将相同的CONFIG去掉 如下图所示是我添加的

       在main函数中增加自定义的串口协议模式切换  串口发FF 00 00 FE为主模式  串口发送FF 01 00 FE为从模式

其中蓝牙主模式主要功能函数如下

 从模式主要功能函数如下

将剩余的业务逻辑补齐即可  当切换不同模式后,建议各自的主要业务逻辑也沿用自身的,有些函数工程不能通用,

3、蓝牙主从调试效果测试

 3.1 发送主从命令进行配对测试 测试配对效果ok。

 3.2测试数据透传

 4、将蓝牙主从程序集成NFC

4.1同理将nfc中prj.conf中的KCONFIG移植到我们建好的工程ble_cen_per_uart中的prj.conf中

业务逻辑移植相对比较简单

需要在主函数中单独开启一个线程,来跑nfc的代码,将需要的文件全部移植到工程目录的src文件夹下如下

 如下图所示coap_nfc.c文件就是源工程中的main.c文件中的程序,源工程中的main函数需要用一个线程代替即可 至此集成工作完成   、需要将响应的.c文件添加到makelist中如下图2

 

5、完成串口发送更改nfc原始数据

   串口发送的数据已经能够被52833成功接收并识别,但是不能作为nfc数据直接存储到nfc存储地址中,需要遵循nfc协议,这里以text格式进行存储

串口拟定命令 FF 02  06 01 02 03 04 05 06 FE  06是字节长度,01到06是数据内容将作为payload写入nfc,但是需要对该数据进行nedf协议组包后才能写入nfc的flash内存中

具体的T4Tnfc nedf协议组包程序如下所示 参考多个例程改写

 核心组包代码已经罗列出来 最终能够实现串口对nfc原始内容的修改,

6 NFC功能验证

   nfc读写比较简单不需要验证,现在对nfc通过串口更改原始nfc数据然后通过手机nfc读出来如下

如上图说明修改成功 然后使用手机读取

 

至此移植nfc、蓝牙主从一体以及串口透传、nfc通过串口更改原始nfc数据功能完结

 

posted @ 2023-07-13 20:08  一品闲  阅读(942)  评论(1)    收藏  举报