Hallo... ich suche ein Codesnippet um mit dem STM32F407 per DMA nach SPI1 die Daten zusenden. static uint_fast16_t x_buffer[20480]; ist der buffer der gesendet werden soll. Dieser soll immer dauerhaft gesendet werden. SPI1 ist auf 16bit eingestellt. Hoffe ihr könnt mir helfen. Danke, Markus
http://www.diller-technologies.de/stm32_wide.html#spi_dma Das muss nur noch für deine Zwecke angepasst werden.
Die Seite kannte ich noch nicht. Danke, Markus
Hallo, ich habe jetzt mein DMA so konfiguriert:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
nur komme ich jetzt nicht mehr weiter bei den Einstellungen Source & Dest Size. Source: uint16_t xbuffer[20480] Dest: darf aber nur uint8 sein. Wie müssen die Einstellungen sein damit DMA das 16bit zu 2x8bit ausgibt? Danke, Markus
Markus C. schrieb: > SPI1 ist auf 16bit eingestellt. Markus C. schrieb: > DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; Das passt nicht zusammen. Nimm doch einfach DMA_PeripheralDataSize_HalfWord. Oder kann man das nicht so machen?
Hi also mit DMA_PeripheralDataSize_HalfWord ist es auch nix. Nachtrag: SPI1 habe ich auf 8bit gestellt. Und es sollte auch so bleiben.
Gast
#3481663
>Nachtrag: SPI1 habe ich auf 8bit gestellt. Und es sollte auch so >bleiben. Dann muss dein MemoryBuffer auch uint8_t werden.
So wie ich das DM00031020.pdf Seite 312 Table 48 sehe sollte es auch so gehen das Source 16bit und Dest 8bit ist.
Gast
#3481676
>So wie ich das DM00031020.pdf Seite 312 Table 48 sehe sollte es auch so >gehen das Source 16bit und Dest 8bit ist. Macht aber igendwie keinen Sinn, oder? Wieso darf SPI nicht mit 16Bit laufen?
Probier es mal so: DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; DMA_InitStructure.DMA_BufferSize = 20480 * 2;
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.