Firmware Einbinden funktioniert nicht!

OP #2205571
Lesenswert?
• ▲
▼
Hallo!

Ich bin neu von PIC auf ARM umgestiegen. Puhh der Einstieg ist nicht 
einfach!
Ich verstehe das mit der Firmware noch nicht ganz. Ich habe auf der ST 
Site eine Firmware heruntergeladen und in meinem Programm eingebunden. 
Nun erscheinen folgende Fehlermeldungen:


C:\Program Files (x86)\Keil\ARM\INC\ST\STM32F10x\STM32F10x.h(670):
error:  #256: invalid redeclaration of type name 
"CAN_FIFOMailBox_TypeDef" (declared at line 171 of "C:\Program Files 
(x86)\Keil\ARM\INC\ST\STM32F10x\stm32f10x_map.h")


Muss ich die Standart_lib entfernen und das automatisch generierte 
Startup-file entfernen? Meiner Meinung nach sollte dies aber 
funktionieren!?!

Danke für Tipps und Eure Hilfe!

Gruss

M.B.
OP #2205599
Lesenswert?
• ▲
▼
Dies geschieht, wenn ich die Lib:

#include <stm32f10x_lib.h>

einbinde!


Konkrete Anwendung, ich möchte ein PWM-Signal mit dem Timer 4 erzeugen. 
Im Beispielprogramm funktionierts. Mein eigenes Programm funktioniert 
nur im Debug-Modus. Ich verwende einen STM32f107VC uP und verwende 
uVision4 von Keil. Die Port- und Timer Einstellungen habe ich genau 
übernommen. Könnte das Problem mit dem Clock zusammenhängen??
1
#include <stm32f10x_lib.h>
2
#include "STM32_Reg.h"            // missing bit definitions
3
#include <STM32F10x.h>
4

5

6
void init(void)
7
{
8

9
  //Clock
10

11
  RCC   ->  CFGR    = 0x001d8402;
12
  RCC   ->  CR      = 0x01010082;
13
  
14
  RCC   ->  APB2ENR |=  1 <<  3;   /* Enable GPIOB clock     */
15

16
//Port
17

18
  //GPIOB ->  CRL     &=  0x00000000;
19
  //GPIOB ->  CRL     |=  0x33333333;
20
  GPIOB ->  CRH     &=  0x00000000;
21
  GPIOB ->  CRH     |=  0x333333BB;
22

23

24
  RCC   ->  APB1ENR =    0x0004;           // enable clock for TIM4       
25
  TIM4  ->  CR1     =   0;                // reset command register 1
26
  TIM4  ->  CR2     =   0;              // reset command register 2
27

28
  TIM4  ->  PSC     =   0x1C1F;        // set prescaler
29
  TIM4  ->  ARR     =   0x270F;       // set auto-reload
30

31
  TIM4  ->  CCR1    =   0x0000;          //
32
  TIM4  ->  CCR2    =   0x0000;                            //
33
  TIM4  ->  CCR3    =   0x1388;                            //
34
  TIM4  ->  CCR4    =   0x094C;                            //
35
  TIM4  ->  CCMR1   =   0x0000;                           //
36
  TIM4  ->  CCMR2   =   0x6060;                           //
37
  TIM4  ->  CCER    =   0x1100;      // set capture/compare enable register
38
  TIM4  ->  SMCR    =   0x0000;     // set slave mode control register
39

40
  TIM4  ->  SR      =   0x0001;  
41
  TIM4  ->  CR1     =   0x0004;       // set command register 1
42
  TIM4  ->  CR2     =   0x0000;           // set command register 2
43
  TIM4  ->  DIER    =   0x0018;          // enable interrupt
44
  TIM4  ->  CR1     =   0x0001;            // enable timer
45
      
46
}

Danke und Gruss!

M.B.
Gast #2205645
Lesenswert?
• ▲
▼
Ein header-file ist keine lib.

Ansonsten solltest du halt mal die Keil-Doku und auch die der "Firmware" 
lesen, um zu verstehen, was die einzelnen Programmteile machen, und wie 
sie anzuwenden sind.

Ebenso die Doku von Keil über startup-files.

Oliver

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.