技术标签: android
平台:RK3288 & Android7.1
内容:调试NFC功能
模块:PN7150
在Android7.1系统的主板上外挂PN7150开发板,增加NFC功能,用于支付。
PN7150通过I2C与主板通信,所以需要在对应的IIC节点添加设备,这里是将模组挂在I2C4
&i2c4 {
status = "okay";
clock-frequency = <400000>;
i2c-scl-rising-time-ns = <345>;
i2c-scl-falling-time-ns = <11>;
pn7150: pn7150@28 {
status = "okay";
compatible = "nxp,pn547";
reg = <0x28>;
interrupt-gpios = <&gpio7 RK_PA6 IRQ_TYPE_LEVEL_HIGH>;
enable-gpios = <&gpio7 RK_PA5 GPIO_ACTIVE_LOW>;
};
};
1、切换至目录
SDK/kernel/drivers/misc
2、下载驱动源码
git clone https://github.com/NXPNFCLinux/nxp-pn5xx.git
这里修改一下Makefile,将Makefile的内容替换成下面这个,把驱动编译成.o文件
kernel\drivers\misc\nxp-pn5xx\Makefile
obj-$(CONFIG_NFC_NXP_PN5XX) += pn5xx_i2c.o
nxp-pn5xx-objs := pn5xx_i2c.o
https://github.com/NXPNFCProject/NFC_NCIHAL_libnfc-nci
SDK路径:external/libnfc-nci
https://github.com/NXPNFCProject/NFC_NCIHAL_Nfcpackages\apps\Nfc
SDK路径:packages\apps\Nfc
https://github.com/NXPNFCLinux/nxpnfc_android_nougat
https://github.com/NXPNFCProject/NFC_NCIHAL_base/tree/br_android_ncihalx_n
SDK根目录新建文件夹 NxpNfcAndroid ,然后把3.1整个文件夹扔进去,3.2里面的内容也全部扔进去,然后执行脚本 install_NFC.sh PN7150
https://github.com/NXPNFCProject/NXPNFC_Reference
替换这个文件,补丁脚本里面没有,但是参考文档有
SDK路径:hardware\libhardware\include\hardware\nfc.h
SDK\device\rockchip\rk3288\device.mk
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software.midi.xml
# NFC packages
PRODUCT_PACKAGES += \
libnfc-nci \
libnfc_nci_jni \
nfc_nci_pn54x.default \
NfcNci \
Tag \
com.android.nfc_extras
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/com.nxp.mifare.xml:system/etc/permissions/com.nxp.mifare.xml \ frameworks/native/data/etc/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml \ frameworks/native/data/etc/android.hardware.nfc.xml:system/etc/permissions/android.hardware.nfc.xml \ frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hce.xml \ NxpNfcAndroid/android.hardware.nfc.hcef.xml:system/etc/permissions/android.hardware.nfc.hcef.xml \
NxpNfcAndroid/conf/libnfc-brcm.conf:system/etc/libnfc-brcm.conf \
NxpNfcAndroid/conf/libnfc-nxp.conf:system/etc/libnfc-nxp.conf
SDK\device\rockchip\rk3288\init.rk3288.rc
//如果没有设备/dev/pn544,就把这段往前提,跟着on boot后面执行
+ # NFC
+ setprop ro.nfc.port "I2C"
+ chmod 0660 /dev/pn544
+ chown nfc nfc /dev/pn544
测试apk文章结尾有,测试结果类似下面这种
拿手机扫可能手机不会弹出nfc的窗口,但是模块是可以识别到手机的ID的,类似上面。
开始参考NXP文档clone的时候不知道要切换平台,后面切换平台下的才对的上。
在执行脚本 install_NFC.sh PN7150 打补丁的时候失败了,这个只能根据报错信息去改,如果有时间可以根据脚本手动打补丁。
模组使用看起来正常,示波器量中断脚电平波动也正常,在驱动里面加打印看数据收发也有,但是I2C时不时会报下面这个错误
pn54x_dev_write : i2c_master_send returned -6
看起来可能是设备掉了,可能是不太稳定,加了上拉也不好使,但是使用起来感觉不到。
没有发现/dev/pn544设备文件,将代码执行顺序往前提到boot那里即可
链接:https://pan.baidu.com/s/1U-y6EO_TO3ZojCd6TdZf5w
提取码:lmjm
nfc模块pn7150移植说明教程(android mtk rk3399 rk3588)_rk3399 nfc-程序员宅基地
文章浏览阅读1.4w次,点赞19次,收藏116次。最近学习过程中 常碰到让用户登录注册这种 今天就用vue实现简单的登录注册功能:注册时要用到localstorage来存储信息 登录时将表单信息和localstorage中的对比判断代码如下: <!-- 登陆页面 --> <van-nav-bar title="密码登陆" style="background:#2f8fea;color:#fff"> <template #left> <van-icon name="ar_vue2实现好看的登录注册
文章浏览阅读5k次,点赞12次,收藏23次。前言最近用 tornado 搭建了一个验证码识别的微服务,部署到CentOS7上去,比较方便的事 tornado自带web服务器,所以部署的时候只需要用python 运行即可一、关键命令 nohup命令:nohup python -u test.py > test.log 2>&1 &1.命令解释:nohup 不挂断的意思python tornado.py tornado服务的启动脚本-u 代表程序不启用缓存,也就是把输出直接放到log中,没_python 使用ssh执行完命令不断开
文章浏览阅读2.8k次。目录前言考前复习考试过程考试结果证书领取前言新的一年系统架构师考试前,分享一下之前参加系统架构师考试的经验,以及考过后如何领证书。软考报名地址 中国计算机技术职业资格网 。考前复习考前由于工作原因,我个人只在考试前一周突击复习,时间允许的话,还是多匀一些时间复习,会比较有把握。架构师考试分3部分:上午的综合知识选择题考试,下午的案例分析考试及论文。复习的重点应该安排在综合知识及案例分析,论文则是在靠前根据以往的项目经验,确定好论文的内容,在考试时选择接近的论文题目即可(例如,我在以前参与过云平台的_中级架构师好考吗
文章浏览阅读7.6k次,点赞17次,收藏82次。目录一、学习资源二、MVPA分析工具——pronto1.下载安装2.参考视频地址3.基本步骤(一)Data&Design(二)Prepare feature set 准备特征集(三)确定并且跑一个模型(四)看结果(五)检测哪些特征对模型的建立提供了更多的信息一、学习资源RSA学习链接1 https://www.zhihu.com/question/268530028二、MVPA分析工具——pronto1.下载安装github下载地址ht.._表征相似性分析
文章浏览阅读8.6k次,点赞3次,收藏24次。1. 基于区域生长算法的图像分割原理数字图像分割算法一般是基于灰度值的两个基本特性之一:不连续性和相似性。前一种性质的应用途径是基于图像灰度的不连续变化分割图像,比如图像的边缘。第二种性质的主要应用途径是依据实现指定的准则将图像分割为相似的区域。区域生长算法就是基于图像的第二种性质,即图像灰度值的相似性。1.1 基本公式令R表示整幅图像区域,那么分割可以看成将区域R划分为n个子区域R1..._区域生长原理
文章浏览阅读2k次。卸载出错:error reading information on service impala-catalog: No such file or directory error: %preun(impala-catalog-2.11.0+cdh5.14.0+0-1.cdh5.14.0.p0.50.el6.x86_64) scriptlet failed, exit status 1卸载impala的依赖报错 相信大家再卸载的时候 都用用过 很多方法用了好多种方法才发现的方法好用,建议大家收藏,以后用_error reading information on service bgpd:
文章浏览阅读1.8w次,点赞46次,收藏371次。前后端参数传递总结(@RequestParam @RequestBody@PathVariable @RequestHeader )@RequestParam@RequestBody合理的创建标题,有助于目录的生成如何改变文本的样式@RequestParam@RequestParam 常用来处理简单类型的绑定,通过Request.getParameter() 获取的String可直接转换为简单类型的情况( String–> 简单类型的转换操作由ConversionService配置的转换器来完成_pathvariable前端传参
文章浏览阅读2.9w次,点赞29次,收藏113次。C语言 strstr函数的用法及模拟实现strstr函数一、strstr函数的用法二、模拟实现strstr函数的功能一、strstr函数的用法1.strstr函数原型:char* strstr(const char* str1,const char* str2)2.功能:strstr()是一个参数为两个字符指针类型,返回值是char*类型的函数,它用于找到子串(str2)在一个字符串(str1)中第一次出现的位置。这里因为传进来的地址指向的内容不会在发生改变,所以我们在两个形参(char*)前加上c_strstr
文章浏览阅读293次。--_使用page标准动作可以实现动态包含
文章浏览阅读742次,点赞5次,收藏8次。ROS打包错误: /usr/bin/ld: cannot find -lpthreads 的解决_performing test cmake_have_libc_pthread - failed
文章浏览阅读1.7k次。“本文介绍的论文全面概述了深度神经网络的压缩方法,主要可分为参数修剪与共享、低秩分解、迁移/压缩卷积滤波器和知识精炼,本论文对每一类方法的性能、相关应用、优势和缺陷等进行独到的分析。” 大型神经网络具有大量的层级与结点,因此考虑如何减少它们所需要的内存与计算量就显得极为重要,特别是对于在线学习和增量学习等实时应用。此外,近来智能可穿戴设备的流行也为研究员提供了在资源(内存、CPU、能..._深度网络模型压缩
文章浏览阅读4.4w次,点赞23次,收藏254次。 Git是什么,相信大家都很清楚。Git不就是分布式版本控制系统嘛?那你知道TortoiseGit是什么吗?下面我们就介绍一下TortoiseGit它是什么?如何使用? TortoiseGit其实是一款开源的git的版本控制系统,也叫海龟git。TortoiseGit提供了人性化的图形化界面,不用像Git一样输入许多语句,像git init、git add、git commit这些语句就通通不用记了。轻松使用鼠标,就可以完成代码的提交和上传。对于使用本地Git的新手来说,TortoiseGit的更加简_tortoisegit