STM32F4 Discovery und Keil uVision5 example Probleme

Gast #3803209
Lesenswert?
• ▲
▼
Hallo,

ich bin neu in der Cortex M4 Welt. Ich habe mir Keil uVision5 
installiert und mir das Beispielprojekt "Blinky" für das Discovery board 
mit dem STM32F407VG runtergeladen. Ich kann das Beispiel bauen aber beim 
flashen gibt es Probleme. Ich bekomme folgende Fehlermeldung:

Full Chip Erase Done.
No Algorithm found for: 08000000H - 080008D7H
Programming skipped!
Error: Flash Download failed  -  "Cortex-M4"

kann mir jemand weiterhelfen?

Gruß
#3803228
Lesenswert?
• ▲
▼
Hallo

Du musst in den Keil Settings den richtigen UC auswählen und zu den 
Programming Algorithm hinzufügen.

Keil:
Options for Target —> Utilities -> Programming Algorithm ->Add Flash 
Programming Algorithm

Falls dein STM dort nicht auftaucht kann du einen anderen STM32F4XXX 
nehmen und ggf. die ROM und RAM-Grösse anpassen.

Gruss Steff
Gast #3803234
Lesenswert?
• ▲
▼
ok, habs hinbekommen und ich kann der uC erfolgreich flashen, jedoch 
funktioniert mein Code nicht...vielleicht weis einer warum:
1
#include <stdio.h>
2
#include "STM32F4xx.h"
3
#include "GPIO_STM32F4xx.h"
4

5
volatile uint32_t msTicks;                      /* counts 1ms timeTicks       */
6

7
/*----------------------------------------------------------------------------
8
  SysTick_Handler
9
 *----------------------------------------------------------------------------*/
10
void SysTick_Handler(void) {
11
  msTicks++;
12
}
13

14
/*----------------------------------------------------------------------------
15
  delays number of tick Systicks (happens every 1 ms)
16
 *----------------------------------------------------------------------------*/
17
void Delay (uint32_t dlyTicks) {                                              
18
  uint32_t curTicks;
19

20
  curTicks = msTicks;
21
  while ((msTicks - curTicks) < dlyTicks);
22
}
23

24

25
/*----------------------------------------------------------------------------
26
  Main function
27
 *----------------------------------------------------------------------------*/
28
int main (void) {
29

30
  SystemCoreClockUpdate();                      /* Get Core Clock Frequency   */
31
  if (SysTick_Config(SystemCoreClock / 1000)) { /* SysTick 1 msec interrupts  */
32
    while (1);                                  /* Capture error              */
33
  }
34
  GPIO_PortClock   (GPIOD, true);
35
  GPIO_PinWrite    (GPIOD, 12, 0);
36
  GPIO_PinConfigure(GPIOD, 12,
37
                    GPIO_MODE_OUTPUT,
38
                    GPIO_OUTPUT_PUSH_PULL,
39
                    GPIO_OUTPUT_SPEED_50MHz,
40
                    GPIO_PULL_DOWN);
41
  GPIO_PinWrite(GPIOD, 12, 1);
42

43
  
44
  while(1) {
45
    
46
  }
47
}
Gast #3803247
Lesenswert?
• ▲
▼
ich will einfach einen Pin ( PD12 ) auf High Pegel bringen, aber nicht 
einmal das funktioniert. Mir ist klar, dass ich für jeden Port die Clock 
aktivieren muss, aber das mache ich im Code meines erachtens nach.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.