1889289_en-US

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1889289_en-US

1889289_en-US

LPC55S28-EVK b2b I2C communication

Dear all,

I'm using LPC55S28-EVK configured as slave to receive I2C data coming from master.

I'm using SDK example i2c_interrupt_b2b_transfer_slave.

It works but I don't know how to detect if received data is write or read command.

As you know I2C read or write command depends on the LSB of address. How to tetect it ?

Thank you very much for your help and cooperation

regards

Re: LPC55S28-EVK b2b I2C communication

Hi @Marconi_ 

In I2C protocol, the LSB of the address byte is used to determine whether the command is a read or write operation. If the LSB is 0, it's a write operation; if it's 1, it's a read operation.

When you receive an interrupt indicating that data has been received, you can check the LSB of the address byte to determine whether it's a read or write operation.

Here's a simple example:

void I2C0_IRQHandler(void)
{

// Address match event occurred
uint8_t address = I2C0->ADDR;

// Check the LSB to determine read (1) or write (0)
if (address & 0x01)
{
// Read command (LSB is 1)
// Perform actions for read command
}
else
{
// Write command (LSB is 0)
// Perform actions for write command
}

}

Hope this will help you.

BR

Hang


标记 (1)
无评分
版本历史
最后更新:
‎11-21-2025 11:07 PM
更新人: