Ich versuche, per HAL_SPI_Transmit_DMA Daten zu versenden. Das klappt
1x, aber am Ende wird der registrierte Callback nicht aufgerufen.
Ich habe eine j-link dran und sehe, daß wTransferState sich nicht
ändert.
CPU ist STM32MP157. Ich bin auf dem M4. Der SPI ist dem M4 zugewiesen.
1 | enum {
|
2 | TRANSFER_WAIT,
|
3 | TRANSFER_COMPLETE,
|
4 | TRANSFER_ERROR
|
5 | };
|
6 |
|
7 | while (1)
|
8 | {
|
9 | wTransferState = TRANSFER_WAIT;
|
10 | if(HAL_SPI_Transmit_DMA(&hspi2, (uint8_t*)aTxBuffer, BUFFER_SIZE) != HAL_OK)
|
11 | {
|
12 | Error_Handler();
|
13 | }
|
14 | unsigned long counter = 0;
|
15 | while (wTransferState == TRANSFER_WAIT)
|
16 | {
|
17 | ++counter;
|
18 | }
|
19 | }
|
20 |
|
21 | void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi)
|
22 | {
|
23 | wTransferState = TRANSFER_COMPLETE;
|
24 | }
|