Question
STM32H743VGT6 how to use slave I2C+DMA
STM32H743VGT6 how to use slave I2C+DMA
Currently, this usage is fine. However, when using the DMA function, it will trigger an ER interrupt.
HAL_I2C_Slave_Seq_Receive_DMA, How to use it? Are there any examples?
// 从机地址匹配回调函数
void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode)
{
if (hi2c->Instance == I2C1)
{
if (TransferDirection == I2C_DIRECTION_TRANSMIT)
{
Rx_len = 0;
memset(I2C_rxBuffer,0,4);
HAL_I2C_Slave_Seq_Receive_IT(&hi2c1, I2C_rxBuffer, 1, I2C_FIRST_AND_LAST_FRAME);
}
else
{
HAL_I2C_Slave_Seq_Transmit_IT(&hi2c1, I2C_txBuffer, Tx_len, I2C_FIRST_AND_LAST_FRAME);
}
}
}