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数据功能完结
浙公网安备 33010602011771号