2016-08-04 08:17 PM
The implementation of HAL_SPI_Receive_DMA() assumes that the Transmit is also DMA and uses HAL_SPI_TransmitReceive_DMA() internally which tries to write to a non-existent Tx DMA transfer complete callback (line 1622 of stm32f3xx_hal_spi.c) causing a hard fault.
I've run out of DMA channels so I don't have the option of using DMA transmit.I would suggest that HAL_SPI_TransmitReceive_DMA() is modified to check the existence of the transmit (and/or receive) buffer and NOT try and write to non-existent variables.2016-08-10 04:27 PM
Further testing makes me wonder if any of the SPI code other than the basic operation has actually been used by anyone!!
Neither DMA or interrupt mode seem to do as advertised - the DAC, 4 UARTs are all working fine with a combination of DMA and interrupt I/O but the SPI totally defeats me :(2016-09-01 09:02 AM
Hi frackers,
I think it's known issue as for F1 in this [DEAD LINK /public/STe2ecommunities/mcu/Lists/STM32Java/Flat.aspx?RootFolder=/public/STe2ecommunities/mcu/Lists/STM32Java/Bug%20STM32CubeF1%20V1.2.0%20HAL_SPI_Receive_DMA%28%29¤tviews=9]thread. Regards2017-01-25 09:22 AM
Hello frackers,
Thank you for highlighting this issue.
I would inform you that this problem
is fixed in the release of STM32CubeF3 V1.7.0.
All your feedback and suggestions are welcome.
Regards
Imen
2018-11-04 08:09 PM
Thanks frackers. You just saved me hours of debugging time. Still broken in F4 Version 1.21.0 (CubeMX version 4.27.0).