CSR867x 之I2C通讯开发

这几天在研究一个项目的I2C通讯,一开始无论怎么搞都读不了IC的ID或者写不进数据,搞的十分的焦灼,幸好最后还算是捣弄出来的了,然后趁着项目不是很紧,赶紧把这几天对I2C的研究心得记录一下,免得自己又忘记了。

在开始调试软件前,先要确认IC的供电,使能脚,复位脚等正确供电,先检查硬件!先检查硬件!先检查硬件!

1.我使用的ADK版本是4.3,和以前的ADK版本是一样的,I2C的接口没有修改,只是4.3多了一个I2C reset的函数可以用。

然后我们来讲解一下I2C给出的接口I2cTransfer()这个函数怎么用,当然大家可以自己看说明,CSR是有写的。

该函数uint16 I2cTransfer(uint16 address, const uint8 *tx, uint16 tx_len, uint8 *rx, uint16 rx_len);

uint16:返回的是和从机(csr867x只能做主机)通讯得到得ACK(确认回答)的次数;

address:该参数是从机的器件地址,一般器件规格书上会给出,但是这里有大坑,待会再细说;

tx:要发送的数据地址开头,一般载体是数组,所以这里一般填数组名字;

tx_len:要发送数据的总长度,一般直接拿数组的长度即可;

rx:要接收(读取)的数据载体,用来保存在从机寄存器里读取的数据;

rx_len:要读取数据的长度,一般看规格书上,需要读取多少个寄存器来定义;

2.函数的参数清楚了之后就直接用吧,我们以AW9523B这个LED IC来举例子:

该IC的规格书上有给出,地址如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值