Question
STM32CubeF1 I2C DMA Driver Questions
Posted on January 08, 2016 at 17:15
I am attempting to port the ''I2C_TwoBoards_ComDMA'' example project to run on a different target board (ZMDI ZWIR451x Development Board) using Rowley CrossStudio as an IDE. This target has an STM32F103RC micro.
After getting all the right files included and configured (I think) so that the project will build and execute, I discover that the ''non-blocking'' function 'HAL_I2C_Slave_Receive_DMA(...)' contains two calls to 'I2C_WaitOnFlagUntilTimeout(...)' the second one causes the slave node to timeout and go into 'error mode' before the master can even start transmitting. Also, the comment states ''/* Wait until ADDR flag is set */'', yet the function arguments say otherwise: ''(hi2c, I2C_FLAG_ADDR, RESET, I2C_TIMEOUT_ADDR_SLAVE) != HAL_OK)''Can anyone explain this logic? Does ''non-blocking'' mean something different in this version of reality? #i2c #hal #dma #stm32cubef1