您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 乌鲁木齐分类信息网,免费分类信息发布

乌鲁木齐嵌入式RK3399开发板代码使用 I2C 接口方法

2019/7/24 4:13:16发布111次查看
       rk3399开发板,可外接uart*3,rs458*1接口,内置pci-e4g接口,集成双usb3.0 type-c接口,传输速度是usb2.0的10倍,使用wifi蓝牙ap6335芯片传输距离可达25米,是一款高性能,高扩展,全能性开发平台,超强大小核cpu架构+超值mali-t860mp4 gpu,4gb双通道lpddr3高速闪存,32gbemmc存储,拥有hdmi、mipi、edp等三种显示接口,强大的显示功能,还能实现双屏显示。
首先驱动文件所在 kernel 位置:drivers/i2c/busses/i2c-rk3x.c;
读数据使用示例:
static int i2c_read_bytes(struct i2c_client *client,
u8 cmd, u8 *data, u8 data_len)
{
struct i2c_msg msgs[2];
int ret;
u8 *buffer;
buffer = kzalloc(data_len, gfp_kernel);
if (!buffer)
return -enomem;;
msgs[0].addr = client->addr;
msgs[0].flags = client->flags;
msgs[0].len = 1;
msgs[0].buf = &cmd;
msgs[1].addr = client->addr;
msgs[1].flags = client->flags | i2c_m_rd;
msgs[1].len = data_len;
msgs[1].buf = buffer;
ret = i2c_transfer(client->adapter, msgs, array_size(msgs));
if (ret < 0)
dev_err(&client->adapter->dev, i2c read failed\n);
else
memcpy(data, buffer, data_len);
kfree(buffer);
return ret;
}
写数据使用示例:
static int i2c_write_bytes(struct i2c_client *client,
u8 cmd, u8 *data, u8 data_len)
{
struct i2c_msg msgs[1];
u8 *buffer;
int ret = 0;
buffer = kzalloc(data_len + 1, gfp_kernel);
if (!buffer)
return -enomem;
buffer[0] = cmd;
memcpy(buffer + 1, data, data_len);
msgs[0].addr = client->addr;
msgs[0].flags = client->flags;
msgs[0].len = data_len + 1;
msgs[0].buf = buffer;
ret = i2c_transfer(client->adapter, msgs, array_size(msgs));
if (ret < 0)
dev_err(&client->adapter->dev, i2c write failed\n);
kfree(buffer);
return ret;
}
     乌鲁木齐嵌入式rk3399开发板,友坚科技专注于三星、瑞芯微、飞思卡尔平台产品的研发,是三星、瑞芯微、飞思卡尔在中国zui具实力的方案公司之一。公司研发、生产的平板、开发板,连续多年销量稳居第yi。公司专注于中高端产品的研发,具有多年的嵌入式产品研发经验;基于a15-exynos5260、a53_s5p6818、a9-s5p4418、a9-exynos 4412、a8-s5pv210、arm11-s3c6410、arm9-s3c2416 、rk3188、rk3288、rk3399、imx6q等处理器,开发了系列化产品,为客户提供了全面的产品选择及专业化的量身定制mid解决方案。




乌鲁木齐分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录