Forum: Mikrocontroller und Digitale Elektronik ARM, Keil (uVision5) - Beginner


von Denis K. (krugman)


Lesenswert?

Hallo,

ich habe gerade angefangen mit Keil+STM32F207.

Nachdem ich die tollen Beispiel von Keil verstanden habe, wollte ich 
mehr ins Detail gehen und habe das Internet bemüht.

So, und hier fängt es an.

In diversen Beispielen wird u.a. die sogenannte 'RCC_APB2PeriphClockCmd' 
Funktion verwendet. Diese existiert in meinen Header-Files aber nicht. 
Warum? Ich kann natürlich ohne diese Funktion auch die GPIO-CLK 
initialisieren, aber es fehlen auch andere Funktionsaufrufe die ich 
widerum gerne nutzen würde ... z.B. die GPIO Alternate Funktion.

Vielleicht kann mir jemand erklären warum ich diese Funktionen nicht 
besitze..

Gruß
Krugman

von Vorobey A. (antvor)


Lesenswert?

Hey,
hast du die Firmware von der ST-Seite runtergeladen?
also die ganze Librarys und Beispiele (STM32CubeF2)?
http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1734/PF257898

mfg Anton

von Denis K. (krugman)


Lesenswert?

Ja das habe ich, und in keinem der Beispiel wird dort z.B.

GPIO_PinAFConfig(...);
oder
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI3, ENABLE);
verwendet. Wenn ich das probiere, dann gibt es diese Funktionen nicht.

Im Gegenteil es wird z.B. so gemacht:
--------------------
/*##-1- Configure the SPI peripheral */
  /* Set the SPI parameters */
  SpiHandle.Instance                 = SPIx;

  SpiHandle.Init.BaudRatePrescaler   = SPI_BAUDRATEPRESCALER_32;
  SpiHandle.Init.Direction           = SPI_DIRECTION_1LINE;
  SpiHandle.Init.CLKPhase            = SPI_PHASE_1EDGE;
  SpiHandle.Init.CLKPolarity         = SPI_POLARITY_HIGH;
  SpiHandle.Init.CRCCalculation      = SPI_CRCCALCULATION_DISABLED;
  SpiHandle.Init.CRCPolynomial       = 7;
  SpiHandle.Init.DataSize            = SPI_DATASIZE_8BIT;
  SpiHandle.Init.FirstBit            = SPI_FIRSTBIT_MSB;
  SpiHandle.Init.NSS                 = SPI_NSS_SOFT;
  SpiHandle.Init.TIMode              = SPI_TIMODE_DISABLED;

  SpiHandle.Init.Mode = SPI_MODE_MASTER;

  if(HAL_SPI_Init(&SpiHandle) != HAL_OK)
  {
    Error_Handler();
  }
----------------




Was mach ich falsch ... bin echt am verzweifeln ...
Sind das etwa custom (IDE spezielle) Funktionen?

Gruß

Krugman

von Vorobey A. (antvor)


Lesenswert?

Hey,
blöde Frage aber hast du die stm32f2xx_rcc.h includet?

weil da sind alle RCC Funktionen definiert.

könntest du evtl dein Programm posten? vllcht kann man dir dann besser 
helfen.
(Ich bin nämlich auch ein STM32 Anfänger)

von Denis K. (krugman)


Lesenswert?

Hmm. Ich habe jetzt nochmal deinen Link überprüft. Scheinbar habe ich 
die falsche CUBE geladen. Es gibt da noch ein Pack mit HAL Bibliotheken.

Ich probiere das jetzt nochmal von vorne  ....

von W.S. (Gast)


Lesenswert?

Denis Krug schrieb:
> In diversen Beispielen wird u.a. die sogenannte 'RCC_APB2PeriphClockCmd'
> Funktion verwendet. Diese existiert in meinen Header-Files aber nicht.

Und hast du dir schon mal einen klitzekleinen Gedanken gemacht, was 
diese Funktion tun soll? oder wie man sich den betreffenden Teil der 
Peripherie SELBST einstellt?

Hast du überhaupt schon ins Manual zu deiner Hardware geschaut und 
versucht, zu verstehen, was man tun muß, um den einen oder anderen 
Peripherie-Core anzuwerfen und zu benutzen?

Und hast du schon mal versucht, den eigentlichen Compiler selbst, also 
direkt aufzurufen, inclusive Linker und FromElf?

Frag dich das mal zu allererst.

W.S.

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.