本帖最后由 二哲科技 于 2020-10-7 09:21 编辑

1.    介绍
这次设计主要是想设计一款带有NFC标签的手表,选择的套件是ST25R3916Discovery,设计的功能为:时间显示,计步,NFC读取,NFC模拟,时间功能就是设计时间样式正常的时间走时(掉电保存),计步功能由于是一整个套件,不好携带,这边为了设计简单就拿按键作为计步功能(掉电保存,零点清零),NFC读取功能修改Demo中的读取,并可以保存NFC标签的UID和数据,模拟也是修改Demo中的模拟卡功能;
2.    整体设计
2.1UI布局设计
首先是屏幕的UI分布情况,需要有日期,时间,步数,NFC功能,版本显示这些部分,首先来看下UI分布,如图1:
1.jpg
图1
分布也是比较简单,但是该显示的都显示了。
2.2时间设计
虽然Demo中有字符串显示,但是只能显示22px和16px的字体,考虑到美观问题所以我使用图片方式来显示时间的时分,使用22px的字符串显示秒。如图2是我选择的时间图标,虽然不炫酷,但是比字符串好看点。
2.jpg
图2
2.3图标设计
既然要设计,那么图标肯定也是要改的,如图3是我选择的部分图标。
3.jpg
图3
3.    设计流程
3.1布局实现
首先是修改布局,通过查看代码,发现Demo的布局分布的非常好,想要实现我的UI布局就需要修改不少东西,这样修改很可能会影响之前的布局,所以我选择了最简单的办法,修改部分布局,再加上我自己的布局,让原来的布局让出一部分空间给我的布局,既然想好了,那么就改吧,先找到整体布局的核心部分,如图4。
4.jpg
图4
你没看错,没有注释,只能一个一个参数看了,这里通过分析代码,发现了可以控制中间布局Y轴起始位置的地方,通过测试选择了一个合适的参数,如图5。
5.jpg
图5
这样中间的布局就满足我的要求了,就可以加入我的布局了。
3.2时间实现
首先生成将数字图片生成HEX文件,可以看我写的这篇文章“JPG图片转HEX工具说明”,然后加入RTC功能,实现时间的走时,并将时间存储至Flash中,避免开机时间复位。RTC代码如下图6。
6.jpg
图6
3.3计步实现
这边计步采用开发板上的蓝色按钮,按一下计一步。
3.4NFC模拟实现
默认的NFC标签中没有数据,通过NFC读取功能,将其他NFC标签上的UID与数据读取进来,可以保存三张卡,选择保存至某一张模拟卡中,并将数据存到Flash中,然后使用模拟卡选择指定的模拟卡,进行模拟NFC标签。

本次设计的相关资料:
链接:https://pan.baidu.com/s/18EcADSmOk4IsF4fzo4z9hg
提取码:465s



【2020意法半导体开发大赛】--ST25R3916 Discovery 基于NFC的智能手表 Part3
【2020意法半导体开发大赛】--ST25R3916 Discovery 基于NFC的智能手表 Part1