2021-10-08 11:41 AM
CubeMx generates the following code
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_RTC_Init();
MX_USART1_UART_Init();
MX_TIM5_Init();
MX_SPI1_Init();
MX_TIM14_Init();
MX_I2C1_Init();
MX_QUADSPI_Init();
MX_SAI1_Init();
MX_SAI2_Init();
MX_SAI3_Init();
MX_DMA_Init();
MX_SPI3_Init();
/* USER CODE BEGIN 2 */
this does not work because MX_DMA_INIT should be called before other peripherals which use DMA,
Pperipherals clock initialization has moved to HAL_???_MspInit functions, so the initialization sequence is important.
Solved! Go to Solution.
2021-10-08 12:19 PM
This is the most common bug reported here. It's known. Hopefully ST fixes it again soon and doesn't reintroduce it in future versions.
2021-10-08 12:19 PM
This is the most common bug reported here. It's known. Hopefully ST fixes it again soon and doesn't reintroduce it in future versions.
2021-10-11 05:05 PM
OMG! I just wasted half a day tracking this down. I did learn quite a lot on the way so not entirely wasted. Just so other people might track this answer down (google please index this!)...
If the DMA registers will not set when configured as part of a peripheral config this is the reason!.
"DMA registers can not be written."