cc2640r2f i2c接口_CC2640R2F I2C问题

使用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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值