本文主要是介绍RK3288 基于Androidstdio JNI实现 IIC 通信,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
RK3288实现JNI对接上层Java和下层的C++。那么我们就要搭建JNI环境,请参考:
https://blog.csdn.net/shao15232/article/details/102501415
这一节我们主要讲JNI如何实现Android stdio实现IIC与从机通信。
首先在JNI中添加iic源文件。如下图:
这里我们添加了编译so库要使用的源文件,就需要设置一下Android.mk
然后就是bsp_iic.cpp源码的实现。(注这里是我们用来读取T613作为Slave address)
bsp_iic.cpp源码:
#include <stdio.h>
#include <linux/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <string.h>
#include <linux/i2c.h>
#include <linux/i2c-dev.h> //这个头文件只有在ndk-16里面有,之前用的ndk-12找不到这个头文件#define SINGLE_RW_2B_ADDR 0x30
#define MODIFY_BNAK_ADDR 0x31/**** @param u8BusIndex* @return*/
int I2C_open(unsigned char u8BusIndex)
{char szDev[16] = {0};sprintf(szDev, "/dev/i2c-%d", u8BusIndex);return open(szDev, O_RDWR);
}/**** @param dev_fh* @return*/
int I2C_close(int dev_fh)
{return close(dev_fh);
}/**** @param u8BusIndex* @param u16BankIndex* @return*/int I2C_modify_bank_index(unsigned char u8BusIn
这篇关于RK3288 基于Androidstdio JNI实现 IIC 通信的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!