One of several PWM examples for the STM32L432 nucleo board

Dependencies:   mbed

main.cpp

Committer:
f3d
Date:
2019-03-26
Revision:
0:18d54d648967

File content as of revision 0:18d54d648967:

#include "mbed.h"
#include <stm32l432xx.h>


#define PWM_PERIOD_COUNT 1000

/*
For register definitions see here:
https://github.com/ARMmbed/mbed-os/blob/master/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/device/stm32l432xx.h
*/
#define BUF_SIZE 99

// Using the MBED libraries to configure the PWM outputs (its easier than 
// calculating all of the register contents by hand)
DigitalOut myled(LED1);
PwmOut  PhaATop(PA_8); 

void initTimer1()
{    
    
    TIM1->CR1 = 0; // make sure Counter is disabled before changing configuration
    TIM1->CR2 = 0;
    TIM1->PSC = 1;
    TIM1->ARR = PWM_PERIOD_COUNT;
    TIM1->CCR1 = PWM_PERIOD_COUNT/4; // 25% duty
    // Enable channel 1
    TIM1->CCER = 1;
    TIM1->SR = 0;      // Clear flags.    
    TIM1->CR1 |= 1; // enable counter

}

int main() {    
   
    initTimer1();
    while(1) {
       
    }
}