Use 1837 sdk periph_i2cm_polling example
IDE LPCXpresso
I tried to read and write some data, and I read some information
But I don’t know how to write 3bit
E.g
Write 0x2e
Read out as 0x00
As shown below 1.png
Hope someone can help me
Thank you
static void SetupXferRecAndExecute(uint8_t devAddr,
uint8_t *txBuffPtr,
uint16_t txSize,
uint8_t *rxBuffPtr,
uint16_t rxSize)
{
/* Setup I2C transfer record */
i2cmXferRec.slaveAddr = devAddr;
i2cmXferRec.options = 0;
i2cmXferRec.status = 0;
i2cmXferRec.txSz = txSize;
i2cmXferRec.rxSz = rxSize;
i2cmXferRec.txBuff = txBuffPtr;
i2cmXferRec.rxBuff = rxBuffPtr;
Chip_I2CM_XferBlocking(LPC_I2C0, &i2cmXferRec);
}
static void WriteBoard_I2CM(int writeVal)
{
uint8_t tx_buffer[3];
/* set configuration to default value */
tx_buffer[0] = BANK_0; /* Write to Config register */
tx_buffer[1] = 0;
SetupXferRecAndExecute(SMB_ADDR, tx_buffer, 3, NULL, 0);
}
static void BANK0_read()
{
uint8_t tx_buffer[3];
uint8_t rx_buffer[3];
tx_buffer[0] = BANK_0; /* Read the Voltage across the shunt */
rx_buffer[0] = 0;
Write_BAN0();
SetupXferRecAndExecute(SMB_ADDR, tx_buffer, 1, rx_buffer, 2);
DEBUGOUT("BANK_0: 0x%02X%02X\r\n", rx_buffer[0], rx_buffer[1]);
}