首页/新闻资讯/正文详情

STM32 玩转 NT3H2211 NFC 标签|I2C 驱动 + NDEF 文本 / URI 记录完整实践

发布时间:2026/9/27 3:40:43 来源:云帆数科 栏目:资讯中心
STM32 玩转 NT3H2211 NFC 标签|I2C 驱动 + NDEF 文本 / URI 记录完整实践
前言最近做了基于 STM32L431VC NT3H2211 的 NFC 近场通信实验踩了 I2C 时序、NDEF 数据格式、中文 UTF‑8 编码不少坑。NT3H2211 是一枚很有意思的 Type‑2 类型 NFC 标签芯片具备I2C、RF 射频双访问接口单片机可以通过 I2C 读写标签内存手机可以通过 13.56MHz 射频无线读写两套接口访问同一片存储区域。本篇把完整调试过程、原理、代码关键点、问题排查整理出来方便大家快速上手。硬件环境主控STM32L431VCNFC 芯片NT3H2211 扩展板通信接口硬件 I2C1PB6 (SCL)、PB7 (SDA)调试工具串口助手 SSCOM波特率 115200NFC 伴侣 APP一、NT3H2211 核心原理NT3H2211 内存按照16 字节一页进行管理主要分为制造数据区、用户数据区、配置区。I2C 从机地址固定为0x55。双界面机制STM32 通过 I2C 改写标签内容手机靠近产生 13.56MHz 射频场既可以给无源标签供电也能读写数据。两边可以修改同一套存储这也是本次实验一个很有意思的现象手机 APP 写入数据会覆盖单片机 I2C 写入的内容。NDEF 格式NFC 数据交换标准格式。一条 NDEF 消息由多条记录组成每条记录包含消息标志位、类型、负载长度、负载数据。常见两种记录Text 文本记录、URI 链接记录。Text 文本记录负载结构状态字节 语言码 实际文本状态字节标记编码方式UTF‑8/UTF‑16以及语言码的字节长度。中文必须使用 UTF‑8 编码一个汉字占 3 字节。二、硬件 I2C 引脚配置要点PB6、PB7 复用为 I2C1这里是很多人踩坑的地方。GPIO_InitStruct.Pin GPIO_PIN_6|GPIO_PIN_7; GPIO_InitStruct.Mode GPIO_MODE_AF_OD; // 复用开漏I2C必须开漏输出 GPIO_InitStruct.Pull GPIO_PULLUP; // 上拉电阻保证总线电平 GPIO_InitStruct.Alternate GPIO_AF4_I2C1; HAL_GPIO_Init(GPIOB, GPIO_InitStruct);⚠️重点I2C 要使用开漏模式不能推挽输出。开漏搭配上拉电阻实现 I2C 总线 “线与” 逻辑。本实验时序配置0x10909CEC对应标准 100kHz I2C 速率。三、软件实现流程整体业务流程I2C初始化 → 读取芯片制造数据 → 配置CC容器初始化标签 → 写入NDEF文本记录 → 写入NDEF URI记录 → I2C读取用户区数据串口打印 → 等待手机NFC读取1、标签初始化初始化 I2C 之后读取制造页修改 CCCapability Container容器参数标记这是一块支持 NDEF 的 NFC 标签写完之后回读校验保证配置生效。void NFC_Init(void) { uint8_t buf[NFC_PAGE_SIZE] {0}; MX_I2C1_Init(); NT3HReaddManufactoringData(buf); buf[0] 0xAA; buf[12] 0xE1; // NDEF标签标识 buf[13] 0x10; // 版本1.0 buf[14] 0x6D; // 内存页数 buf[15] 0x00; NT3HWriteInitData(buf); NT3HReaddManufactoringData(buf); //回读验证 }2、写入 NDEF 文本、URI 记录封装好storeText()写入文本记录storeUrihttp()写入 URI 链接记录。第一条文本记录设置 MB1消息开始最后一条 URI 记录设置 ME1消息结束ret storeText(NDEFFirstPos, (uint8_t *)Hello NFC); ret storeUrihttp(NDEFLastPos, (uint8_t *)123.com);文本记录内部会设置状态字节0x02代表 UTF‑8 编码语言码长度 2 字节语言码en。3、读取标签数据串口输出循环读取多页用户区内存拼接缓冲区后串口输出。这里会出现一个现象串口打印出现大量乱码。NT3HReadUserpages(15, data_buf); printf(\r\nreaddata:%s, data_buf);乱码原因NDEF 原始是二进制数据包含消息头、记录头这些非 ASCII 不可打印字节直接用%s字符串打印就会乱码。数据本身没有损坏改用十六进制打印%02X就可以看到完整原始字节流。4、手机端验证两种验证手段直接手机 NFC 感应标签读取 NDEF 文本使用 NFC 伴侣 APP通过射频接口直接向标签写入中文姓名。实验中发现手机 APP 写入的中文 “尹强” 直接覆盖掉 STM32 通过 I2C 写入的 Hello NFC完美印证 NT3H2211 双界面共享存储的特性。解析数据包可以看到中文每个汉字占 3 字节 UTF‑8 编码。四、踩坑问题记录I2C 连续读写出错NT3H2211 芯片对时序有要求连续 I2C 读写之间必须加 1ms 延时。代码读写函数加入HAL_Delay(1)解决连续访问异常。手机 NFC 识别不到标签NFC 有效距离很短一般 1‑4cm手机 NFC 感应区域要紧贴天线位置屏蔽罩附近感应效果最好。中文显示乱码NDEF 文本记录状态字节必须指明 UTF‑8 编码如果设置错误中文就会解析乱码。不要用推挽模式配置 I2C 引脚会造成总线冲突通信完全失败。五、拓展脑洞基于这套硬件还可以做很多有意思项目NFC 电子名片写入 vCard 格式手机一碰添加联系人NFC 配网把 WiFi 账号密码写入标签手机一碰完成配网简易 NFC 门禁将学号身份信息存入标签传感器数据实时写入 NFC手机靠近读取温湿度等环境数据。小结这次实验把 I2C 外设驱动、NDEF 协议栈、NFC 芯片双界面特性完整跑通。NFC 底层不复杂但协议细节很多尤其 NDEF 各个字段、文本负载格式很容易忽略。遇到串口乱码不要第一时间认为硬件读写失败优先打印十六进制原始数据排查。

相关推荐

新视野大学英语视听说第四版资源整理:音频本地化与答案核对指南
新视野大学英语视听说第四版资源整理:音频本地化与答案核对指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 3:40:43

《电机与拖动》全套PPT课件2026(山东大学)
《电机与拖动》全套PPT课件2026(山东大学)

《电机与拖动》全套PPT课件2026(山东大学) 课件内容: 绪论.ppt 第1章电磁学的基本知识与基本定律.ppt 第2章直流电机的建模与特性(第2部分)ppt 第2章直流电机的建模与特性.ppt 第3章直流电机的电力拖动(第2部分)-ppt 第3章直流电机… · 2026/9/27 3:40:37

STM32CubeMX安装配置全指南:避坑、协同与性能调优
STM32CubeMX安装配置全指南:避坑、协同与性能调优

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 3:40:37

【多智能体控制】多智能体航天器近距离操作与对接的最优任务分配与稳健管状控制【含Matlab源码 15990期】
【多智能体控制】多智能体航天器近距离操作与对接的最优任务分配与稳健管状控制【含Matlab源码 15990期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞… · 2026/9/27 4:19:39

项目没有量化数据,也能写清个人贡献
项目没有量化数据,也能写清个人贡献

项目没有量化数据,也能写清个人贡献 写项目经历时,很多人一看到“用数字说明成果”,就开始为没有增长率、转化率或收入数据发愁。数字确实能帮读者快速判断规模,但不是所有岗位都会留下可归因的指标。实习生参与流程优化、运营同学… · 2026/9/27 4:19:33

多端同步内容知识库怎么选?从使用场景和选型维度聊聊
多端同步内容知识库怎么选?从使用场景和选型维度聊聊

日常要处理论文笔记、代码片段、技术文档、素材截图,办公室电脑、家里笔记本、手机、平板之间来回切换。多端同步可以让知识库在不同设备之间保持一致,提升查找、整理和创作效率。本文从多端同步、内容整合、AI问答创作、分享协作等角度,整理… · 2026/9/27 4:19:33

网页制作培训好学吗?3年实操告诉你哪家好不踩坑
网页制作培训好学吗?3年实操告诉你哪家好不踩坑

网页制作培训好学吗?3年实操告诉你哪家好不踩坑 找建站公司怕被坑高价?别急,先搞懂 网页制作培训好学吗 这个底层逻辑,再问 哪家好 才有底气。… · 2026/9/27 4:19:33

改需求拖一周?perl网站建设怎么选才不踩坑
改需求拖一周?perl网站建设怎么选才不踩坑

改需求拖一周?perl网站建设怎么选才不踩坑 改个页面文案,建站公司回复“下周安排”,你盯着进度条干等。这种被技术黑箱卡脖子的感觉,比服务器宕机还让人抓狂。很多老板以为只要给钱就能买服务,却没搞懂底层技术栈的选型逻辑。其实,… · 2026/9/27 4:19:27

5分钟把NVIDIA Agent Skills装进Claude Code:新手必看的AI Agent技能快速上手教程
5分钟把NVIDIA Agent Skills装进Claude Code:新手必看的AI Agent技能快速上手教程

5分钟把NVIDIA Agent Skills装进Claude Code:新手必看的AI Agent技能快速上手教程 【免费下载链接】skills Agent Skills for NVIDIA products — install into Claude Code, Codex, and other coding agents to run Physical AI, robotics, simulation, CUDA, and … · 2026/9/27 4:19:27

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码