cancel
Showing results for 
Search instead for 
Did you mean: 

Hello forum, The processor is STM32F072 I got a download of a code snippet that I want to modify. It works great on PA8. I want the same PWM output on PA9 and PA10. I tried several things but none worked. Here is the code snippet /* (1) Enable the

David Blight
Associate
Posted on March 23, 2017 at 00:15

Hello forum,

The processor is STM32F072

I got a download of a code snippet that I want to modify.  It works great on PA8.  I want the same PWM output on PA9 and PA10.  I tried several things but none worked.  Looking for suggestions

Here is the code snippet

/* (1) Enable the peripheral clock of Timer x */

/* (2) Enable the peripheral clock of GPIOA */

/* (3) Select alternate function mode on GPIOA pin 8*/

/* (4) Select AF2 on PA8 in AFRH for TIM1_CH1 */

RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; /* (1) */

RCC->AHBENR |= RCC_AHBENR_GPIOAEN; /* (2) */

GPIOA->MODER = (GPIOA->MODER & ~(GPIO_MODER_MODER8)) | (GPIO_MODER_MODER8_1);/* (3) */

GPIOA->AFR[1] |= 0x02; /* (4) */

/* (1) Set prescaler to xx, so APBCLK/48 i.e 48 MHz */

/* (2) Set ARR = 200, as timer clock is 1MHz the period is 50 us */

/* (3) Set CCRx = x, , the signal will be high during 0-199 steps */

/* (4) Select PWM mode 1 on OC1 (OC1M = 110),

enable preload register on OC1 (OC1PE = 1) */

/* (5) Select active high polarity on OC1 (CC1P = 0, reset value),

enable the output on OC1 (CC1E = 1)*/

/* (6) Enable output (MOE = 1)*/

/* (7) Enable counter (CEN = 1)

select edge aligned mode (CMS = 00, reset value)

select direction as upcounter (DIR = 0, reset value) */

/* (8) Force update generation (UG = 1) */

TIMx->PSC = 1; /* (1) */

TIMx->ARR = 200; /* (2) */

TIMx->CCR1 = 25; /* (3) */

TIMx->CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1PE; /* (4) */

TIMx->CCER |= TIM_CCER_CC1E; /* (5) */

TIMx->BDTR |= TIM_BDTR_MOE; /* (6) */

TIMx->CR1 |= TIM_CR1_CEN; /* (7) */

TIMx->EGR |= TIM_EGR_UG; /* (8) */

#pwm-timer-output
3 REPLIES 3
Posted on March 23, 2017 at 02:19

I tried several things but none worked.  

Namely?

JW

NPate.1
Associate

If you want to download STM32F072 processor, you may use https://hpsupports.co/hp-customer-support/ and from here, you are able to get the features and the future scopes for the processor And if you want to update the processor, you can use the link.

henry.dick
Senior II

" It works great on PA8. I want the same PWM output on PA9 and PA10."

simple:

1) understand how the previous code works;

2) replicate that on your new target.

whether you can remap the output to PA9/PA10 will be chip-dependent. check the datasheet to be sure.