STM32 PWM allgemein

Gast #2609328
Hallo STM32-Benutzer,
ich versuche gerade einen Motortreier über ein PWM-Signal u steuern. Das 
ganze sollte auf meinem STM32F103 Board noch Platz finden und so hab ich 
mir mal ein wenig die Codes dazu anesen und daraus dann meine 
Initialisierung gebastlt.

Hier meine Initialisierung:
1
  /* GPIOB Configuration: TIM4 CH3 + 4 */
2
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 ;
3
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
4
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
5
  GPIO_Init(GPIOB, &GPIO_InitStructure);
6

7
  /* Time base configuration */
8
  TIM_TimeBaseStructure.TIM_Period = 100;
9
  TIM_TimeBaseStructure.TIM_Prescaler = 200;
10
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
11
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
12
  TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
13

14
  TIM_ARRPreloadConfig (TIM4, ENABLE);
15

16
  // Update registers
17
  TIM4->EGR |= (1 << TIM_EGR_UG);
18

19
  /* PWM1 Mode configuration: Channel3 */
20
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
21
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
22
  TIM_OCInitStructure.TIM_Pulse = 10;
23
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
24
  TIM_OC3Init(TIM4, &TIM_OCInitStructure);
25

26
  TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
27

28
  /* PWM1 Mode configuration: Channel4 */
29
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
30
  TIM_OCInitStructure.TIM_Pulse = 20;
31
  TIM_OC4Init(TIM4, &TIM_OCInitStructure);
32

33
  TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);
34

35
  /* TIM4 enable counter */
36
  TIM_Cmd(TIM4, ENABLE);
37
  TIM_CtrlPWMOutputs(TIM4, ENABLE);

Hat das von euch schonmal jemand gemacht? Am Ausgang messe ich nichts.
Wäre über eine kleine Hilfe echt dankbar!

P.S.: Muss ich meine Pins über einen ReMap neu programmieren? Bei 
früheren Controllern der STM32 Serie war das ja so oder? Hab in der Lib 
aber keinerlei Funktionen dazu gefunden, da das ja jetzt über GPIO_Mode 
kalppt.
Gast #2609376
>Hat das von euch schonmal jemand gemacht? Am Ausgang messe ich nichts.
>Wäre über eine kleine Hilfe echt dankbar!

Stichwort APB und RCC Clock. Davon seh ich bei dir nichts.
Gast #2609382
In der Datei system_stm3210x.c sind die Clocks eingestellt. Diese Datei 
erzeugt das TrueStudio selber. Darin auch die Einstellungen für den 
Systemtakt von 72MHz.
Gast #2609411
>Hier...

Da steht nichts drin um deine Peripherie mit einem
Takt zu versorgen. Sowas zum Bleistift:

  /* TIM1 clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
Gast #2609453
1
  /* TIM3 clock enable */
2
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
3
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);


Das steht kurz vor dem Code, welchen ich gepostet hab. Also alles i.O. 
aber geht trotzdem nicht.
Gast #2609909
Hängt mein Problem mit den Interuppts zusammen?
Eigentlich brauche ich doch aber keine Interuppts, denn das macht der 
Controller von alleine.
Habe leider den Fehler noch nicht gefunden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.