Moin!
Ich komme nicht weiter und hab keine Ideen mehr...
Ich habe ein uint16_t array, dass ich mit der SPI und DMA übertragen
muss. Die SPI überträgt 8 Bit.
Ich habe das Problem, dass vom ersten Eintrag immer die ersten 8 Bit
fehlen, aber nur, wenn ich das Paket mit DMA übertrage. Ohne DMA
funktioniert es einwandfrei.
1 | //erste Paket immer beschnitten
|
2 | HAL_SPI_Transmit_DMA(&hspi3, (uint8_t *) buffer, BUFFER_SIZE*2);
|
3 |
|
4 | //funktioniert
|
5 | HAL_SPI_Transmit(&hspi3, (uint8_t *) buffer, BUFFER_SIZE*2, 10);
|
1 | Beispielergebnis mit DMA (buffer[]):
|
2 | 911
|
3 | 998
|
4 | 1093
|
5 | ...
|
6 |
|
7 | übertrage wurde:
|
8 | 143
|
9 | 998
|
10 | 1093
|
11 | ...
|
DMA ist auf Byte (periphery) und half_word mit incremet adress (memory)
eingestellt.
Ist das Ding hier irgendwie verbuggt, oder habe ich was übersehen?
Vielen Dank vorab!