7486|7

110

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【小熊派-鸿蒙-季 BearPi-HM Nano】之NFC测试 [复制链接]

本帖最后由 sumoon_yao 于 2021-6-28 17:34 编辑

根据官方资料,小熊派主芯片Hi3861有2组IIC通讯接口 ,1组以E53方式引出,一组被NFC芯片使用,参看下列原理图:

 

这次就来测试下小熊派的NFC功能。

 

例程中的B5就是NFC功能的演示,进入B5_basic_i2c_nfc目录,打开主程序i2c_example.c:

 

static void I2CTask(void)

{

   uint8_t ret;

   GpioInit();

 

//GPIO_0复用为I2C1_SDA

   IoSetFunc(WIFI_IOT_IO_NAME_GPIO_0, WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA);

 

//GPIO_1复用为I2C1_SCL

   IoSetFunc(WIFI_IOT_IO_NAME_GPIO_1, WIFI_IOT_IO_FUNC_GPIO_1_I2C1_SCL);

 

//baudrate: 400kbps

   I2cInit(WIFI_IOT_I2C_IDX_1, 400000);

 

   I2cSetBaudrate(WIFI_IOT_I2C_IDX_1, 400000);

 

   printf("I2C Test Start\n");

 

   ret = storeText(NDEFFirstPos, (uint8_t *)TEXT);

   if (ret != 1)

   {

      printf("NFC Write Data Falied :%d ", ret);

   }

   ret = storeUrihttp(NDEFLastPos, (uint8_t *)WEB);

   if (ret != 1)

   {

      printf("NFC Write Data Falied :%d ", ret);

   }

   while (1)

   {

      printf("=======================================\r\n");

      printf("***********I2C_NFC_example**********\r\n");

      printf("=======================================\r\n");

      printf("Please use the mobile phone with NFC function close to the development board!\r\n");

      usleep(1000000);

   }

}

 

程序看上去也比较简单,设置了IIC总线的2个引脚和波特率,然后向NFC存储区写入了2组数据,一组是纯文本信息,另一组是URI数据,最后程序进入循环,等待带有NFC功能的手机来读取这2组信息。

 

将 sample目录下的build.gn文件做如下修改:

#"B1_basic_led_blink:led_example",

#"B2_basic_button:button_example",

#"B3_basic_pwm_led:pwm_example",

#"B4_basic_adc:adc_example",

"B5_basic_i2c_nfc:i2c_example",

#"B6_basic_uart:uart_example",

 

也即注释掉B2,去掉B5的注释。

编译和烧写过程与上一篇一样。

 

打开串口终端,程序运行结果如下图所示:

 

循环等待带有NFC功能的手机来读取NFC数据

 

手机中装有2个NFC工具,一个是ST公司的NFC Tap,另一个是NXP公司的NFC Taginfo,使用这2个app分别读取。

先来看下NFC Tap的读取情况。NFC Tap有2种读取方式:Read Tag和Read NDEF。

 

 

先看下Read Tag方式:

 

手机靠近板子的NFC TAG区域,NFC指示灯亮,但是手机没有读取到信息。

 

再使用Read NDEF方式读取,手机靠近板子的NFC TAG区域后,马上响起了读取成功的提示音,且手机屏幕上显示出了读取的内容:

上图中可以看出NFC读取app已经成功读到了板子主程序运行写入的2组数据。

 

再看下NXP Taginfo 读取情况,点击“Sacn & Show”按钮,手机靠近板子的NFC TAG区域,很快屏幕上显示已读取到数据:

 

点击“NTAG I2C Plus”按钮,屏幕显示了该NFC Tag的详细信息:

 

 

    如何向小熊派通过NFC写入数据,经过了解小熊派新版有个读取NFC数据的例子,参考之后对现有的NFC例程做些改动即可实现。

 

    首先修改主程序i2c_example.c:

 

    在nfc目录下的程序NT3H.c文件中增加函数:

 

    在nfc目录下的头文件NT3H.h文件中增加一行:

 

编译、烧写后程序运行结果如下:

 

    等待外部NFC读卡器读取的同时,板子本身也在循环读取初始写入的数据,此时如果有外部NFC Writer向板子写入数据,那么就实现了通过NFC向板子传送数据的目的。

 

    打开手机上的NFC Writer,先测试写入文本数据:

    按下WRITE按钮,将手机靠近板子的NFC区域,嘀嗒一声后写入成功,测试串口终端显示:

 

    因为输出显示方式的问题,看不出板子读到的数据,用NFC Tap APP再来读取下,结果如下:

 

说明数据被成功写入到了板子的NFC数据存储区。

 

    再用NFC Write写入URL数据:

    同样的在嘀嗒一声后写入成功,测试串口终端显示:

 

    用NFC Tap APP再来读取下,结果如下:

 

    至此,NFC双向通讯测试完毕。当然对NFC的一些具体的技术细节,后面还要抽时间研究。

 

 

此帖出自ARM技术论坛

最新回复

【小熊派-鸿蒙-季 BearPi-HM Nano】之NFC测试   详情 回复 发表于 2021-6-25 11:44

赞赏

1

查看全部赞赏

点赞(1) 关注(1)
 

回复
举报

5220

帖子

236

TA的资源

管理员

沙发
 

看到碰一碰了

此帖出自ARM技术论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

1942

帖子

3

TA的资源

版主

板凳
 

不错哈,效果确实挺好!

此帖出自ARM技术论坛
 
 
 

回复

7452

帖子

2

TA的资源

五彩晶圆(高级)

4
 

谢谢分享,期待后续!

此帖出自ARM技术论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

5
 

看着很不错,蹲一个后续!

此帖出自ARM技术论坛
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

6
 

厉害了

此帖出自ARM技术论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

7
 

【小熊派-鸿蒙-季 BearPi-HM Nano】之NFC测试

此帖出自ARM技术论坛
 
 
 

回复

110

帖子

1

TA的资源

一粒金砂(中级)

8
 
本帖最后由 sumoon_yao 于 2021-6-28 17:36 编辑

反向操作更新完毕。

此帖出自ARM技术论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表