在线时间0 小时
UID319324
注册时间2011-9-22
NXP金币0
该用户从未签到
新手上路

- 积分
- 173
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2013-12-4 16:47:34
|
显示全部楼层
回复:有关I2C读取数据的疑问
我的多字节读取总是有问题,代码如下,帮我看看怎么回事吧?
I2Cn: I2C号,0 = I2C0,1= I2C1,
ucDevAddr: 器件地址
ucRegAddr:器件寄存器地址
ucRegAddrLen:寄存器地址长度
ulDataLen:需要读取的数据长度
*pucBuf:指向存放读取数据缓冲的指针
ULONG MKL_I2C_ReceiveData(I2Cn i2cn, UBYTE ucDevAddr, ULONG ulRegAddr,
UBYTE ucRegAddrLen,ULONG ulDataLen, UBYTE *pucBuf)
{
UBYTE *pucRegAddrBuf = (UBYTE *)&ulRegAddr;
UBYTE ucTemp = ucRegAddrLen;
/* 如果读取数据时,设备地址和寄存器地址分开,则先发送设备地址 */
if(0 != ucTemp)
{
/* send start signal */
MKL_I2C_Start(i2cn);
/* send ID with W bit */
MKL_I2C_WriteByte(i2cn,((ucDevAddr |
|