2020-03-05 02:34 AM
Hi folks,
i recently tried to migrate my SSD1306-I2C-display driver using DMA from "STM32Cube FW_F1 V1.6.1" to the latest "STM32Cube FW_F1 V1.8.0".
The driver uses HAL_I2C_Mem_Write_DMA(..) routines and worked just fine on the old Cube firmware. Now with the latest one the related HAL_I2C_MemTxCpltCallback() at the end of DMA transfer does not get called. Instead the controller ends up in the HardFault_Handler.
Cube-settings for DMA are taken like that:
-DMA is set up to TX mode in cube
-DMA1 channel6 global interrupt is enabled
-I2C1 event interrupt is enabled
(just the same settings that worked fine in FW_F1 V1.6.1)
you will find my code that uses the HAL_I2C-routines attached.
Hope someone can tell me whats wrong
2020-03-18 07:21 AM
Finally i found a workaround that made I2C-Tx-DMA work again in STM32Cube FW_F1 V1.8.0
There are two things to do:
If anybody has a hint on how I2C-Tx-DMA is intended to be used in STM32Cube FW_F1 V1.8.0, postings are welcome.