STM32F103C8T6 PWM

  • elpablito
  • Autore della discussione
  • Platino Utente
  • Platino Utente
Di più
3 Settimane 1 Giorno fa #1 da elpablito
STM32F103C8T6 PWM è stato creato da elpablito
Vediamo se qui qualcuno riesce a risolvermi il problema io continuo a girarci attorno ma non cavo il ragno dal buco. Sto trasportando dall'editor di Arduino a PlatformIo  questo file che genera un impulso di lunghezza prefissata con un cero duty cicle. Su arduino funziona a meraviglia aggiungendo l'istruzione  pinMode(PB6, PWM).  In effetti può essere assimilato a un PWM.
Su PlatformIO  listruzione  pinMode  dicui sopra ovviamente non è ammessa. Non riesco a ritrovarmi l'impulso sul pin PB6 che è quello di default. Sembrerebbe bisogna connettere la porta al timer ma no riesco a beccare il registro giusto. 
#include <Arduino.h>
void setup() {
    TIM4->CR1 = TIM_CR1_CEN |TIM_CR1_ARPE;  // Enable counter and auto-reload preload
    TIM4->CR2 = 0;
    TIM4->SMCR = 0;
    TIM4->DIER = 0;
    TIM4->EGR = 0;
    TIM4->CCMR1 = (0b110 << 4 ) | TIM_CCMR1_OC1PE; // PWM mode 1, preload enable
    TIM4->CCMR2 = 0;
    TIM4->CCER = TIM_CCER_CC1E ;  // Enable output on channel 1
    TIM4->PSC = 71;
    TIM4->ARR = 0x5000;             // Set auto-reload value, period
    TIM4->DCR = 0;
    TIM4->CCR1 = 1000;          // Set compare value for channel 1,  duty cycle
}
void loop() {
    delay(10);
}

[env:genericSTM32F103C8]
platform = ststm32
board = genericSTM32F103C8
framework = arduino

Ringraziando in anticipo 
Saluti

Si prega Accesso o Crea un account a partecipare alla conversazione.

Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Forum - Ultimi messaggi