- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I2C slave read and write buffers operation ,the index is incremented。 I can't find a function to reset the array index in the CAT2 Peripheral Driver Library of MTB.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
你打开modus的工程,在i2c slave 做好一次读的时候,代码里面会调用:
/* Configure write buffer for the next write */
Cy_SCB_I2C_SlaveConfigWriteBuf(CYBSP_I2C_HW, i2cWriteBuffer,
SL_WR_BUFFER_SIZE, &CYBSP_I2C_context);
这个函数的函数体就是:
void Cy_SCB_I2C_SlaveConfigWriteBuf(CySCB_Type const *base, uint8_t *buffer, uint32_t size,
cy_stc_scb_i2c_context_t *context)
{
CY_ASSERT_L1(CY_SCB_IS_I2C_BUFFER_VALID(buffer, size));
/* Suppress a compiler warning about unused variables */
CY_UNUSED_PARAMETER(base);
context->slaveRxBuffer = buffer;
context->slaveRxBufferSize = size;
context->slaveRxBufferIdx = 0UL;
}
slavRxBufferIdx=0就是你说的指针复位。如果你以前用psoc creator,也就是
/* Clear the slave write buffer and status */
I2CS_I2CSlaveClearWriteBuf();
其实你进到函数里面去看代码:
void I2CS_I2CSlaveClearWriteBuf(void)
{
I2CS_slWrBufIndex = 0u;
}
希望我的解释能对你有帮助。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
你打开modus的工程,在i2c slave 做好一次读的时候,代码里面会调用:
/* Configure write buffer for the next write */
Cy_SCB_I2C_SlaveConfigWriteBuf(CYBSP_I2C_HW, i2cWriteBuffer,
SL_WR_BUFFER_SIZE, &CYBSP_I2C_context);
这个函数的函数体就是:
void Cy_SCB_I2C_SlaveConfigWriteBuf(CySCB_Type const *base, uint8_t *buffer, uint32_t size,
cy_stc_scb_i2c_context_t *context)
{
CY_ASSERT_L1(CY_SCB_IS_I2C_BUFFER_VALID(buffer, size));
/* Suppress a compiler warning about unused variables */
CY_UNUSED_PARAMETER(base);
context->slaveRxBuffer = buffer;
context->slaveRxBufferSize = size;
context->slaveRxBufferIdx = 0UL;
}
slavRxBufferIdx=0就是你说的指针复位。如果你以前用psoc creator,也就是
/* Clear the slave write buffer and status */
I2CS_I2CSlaveClearWriteBuf();
其实你进到函数里面去看代码:
void I2CS_I2CSlaveClearWriteBuf(void)
{
I2CS_slWrBufIndex = 0u;
}
希望我的解释能对你有帮助。