Forum: Mikrocontroller und Digitale Elektronik STM32 HAL_SPI_Transmit() richtig?


von Noob (Gast)


Lesenswert?

Grüße,
ich möchte dieses Array:
1
uint8_t data[4]
2
{
3
0b11111111,
4
0b11111111,
5
0b11111111,
6
0b11111111
7
}
über SPI im Blocking-Mode senden.

Aus der HAL-Doku:
1
HAL_StatusTypeDef HAL_SPI_Transmit (SPI_HandleTypeDef * hspi, uint8_t * pData, uint16_t Size,
2
uint32_t Timeout)

Dann wäre der Befehl so:
1
HAL_SPI_Transmit(&hspi1, &data, 4, HAL_MAX_DELAY);

Stimmt das so? Insbesondere die & Zeichen und die 4? Der Code nach dem 
Transmit-Befehl wird auch erst ausgeführt wenn der Transmit fertig ist 
oder es zum Timeout kommt, da im Blocking-Mode, richtig?

Das SPI ist über CubeMX im 8bit Modus konfiguriert. Ein "SPI_Enable" wie 
es in den "STM32 Standard Peripheral Libraries" nötig war gibt es beim 
HAL nicht, richtig?

Gibt es in der CubeIDE eine Möglichkeit das SPI zu debuggen oder genauer 
zu visualisieren um zu sehen ob er sendet?

Bin blutiger Anfänger, danke für eure Zeit :)
Liebe Grüße!

von junge jomm bald wieder (Gast)


Lesenswert?

Noob schrieb:
> Gibt es in der CubeIDE eine Möglichkeit das SPI zu debuggen oder genauer
> zu visualisieren um zu sehen ob er sendet?

Dazu gibt's Logic Analyzer um 7 EUR.

Jetzt ist die Zei, so ein Ding zu bestellen.

von Noob (Gast)


Lesenswert?

Ich habe oben ein = vergessen. Entschuldigung. Richtig:
1
uint8_t data[4] =
2
{
3
0b11111111,
4
0b11111111,
5
0b11111111,
6
0b11111111
7
}

junge jomm bald wieder schrieb:
> Dazu gibt's Logic Analyzer um 7 EUR.
So einen hab ich sogar. Nur ist es leider aktuell sehr schwer den 
anzuschließen, dazu muss ich noch die Platine umbauen, bzw. Pins an den 
Leiterbahnen anbringen. Das hab damals leider ungünstig geplant.

von horst (Gast)


Lesenswert?

HAL_SPI_Transmit(&hspi1, data, sizeof(data), HAL_MAX_DELAY);

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.