Quantcast
Channel: 蓝牙论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 7485

CC2640R2F I2C问题

$
0
0

使用I2C Callback模式,连续写两包数据,第二包发不出去。

下面是读,写,初始化函数。

static uint8_t I2C_read(void)
{
static I2C_Transaction transactionR;

memset(i2cSet.readBuf, 0, sizeof(i2cSet.readBuf));

transactionR.writeCount = 0;
transactionR.writeBuf = NULL;
transactionR.readCount = sizeof(i2cSet.readBuf);
transactionR.readBuf = i2cSet.readBuf;
transactionR.slaveAddress = HAL_I2C_SLAVE_ADDR_DEF;

I2C_transfer(i2cHandle, &transactionR);

return SUCCESS;
}

static uint8_t I2C_write(uint8_t *pData, uint8_t len)
{
static I2C_Transaction transactionW;

i2cSet.readWriteFlag = WRITE_OPERATE;

transactionW.writeCount = len;
transactionW.writeBuf = i2cSet.writeBuf;
transactionW.readCount = 0;
transactionW.readBuf = NULL;
transactionW.slaveAddress = HAL_I2C_SLAVE_ADDR_DEF;

uint8_t result = I2C_transfer(i2cHandle, &transactionW);

return SUCCESS;
}

uint8_t I2C_initialize(void)
{
I2C_Params params;

I2C_init();

I2C_Params_init(&params);
params.transferMode = I2C_MODE_CALLBACK;
params.transferCallbackFxn = I2C_callbackFxn;
params.bitRate = I2C_100kHz;
i2cHandle = I2C_open(CC2640R2_LOCK_I2C0, &params);
if (!i2cHandle) {
return FAILURE;
}

i2cSet.readWriteFlag = READ_OPERATE;
keySet.count = 0;
keyFuncSet.step = 0;

return SUCCESS;
}


Viewing all articles
Browse latest Browse all 7485

Trending Articles