stm32f0: stm32f1: gpio: rcc: set up timers for PWM

master
S.J.R. van Schaik 7 years ago
parent 43e3476a6d
commit 0fb4d67cce
  1. 13
      source/platform/stm32f0/gpio.c
  2. 6
      source/platform/stm32f0/rcc.c
  3. 7
      source/platform/stm32f1/gpio.c
  4. 1
      source/platform/stm32f1/rcc.c

@ -22,6 +22,19 @@ int gpio_init(void)
gpio_mode_setup(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO1);
gpio_set_output_options(GPIOA, GPIO_OTYPE_OD, GPIO_OSPEED_25MHZ, GPIO1);
/* Set up GPIOs for timers */
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO8);
gpio_set_af(GPIOA, GPIO_AF2, GPIO8);
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO1);
gpio_set_af(GPIOA, GPIO_AF2, GPIO1);
gpio_mode_setup(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO4);
gpio_set_af(GPIOB, GPIO_AF1, GPIO4);
gpio_mode_setup(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO1);
gpio_set_af(GPIOB, GPIO_AF2, GPIO1);
return 0;
}

@ -4,11 +4,17 @@
int rcc_init(void)
{
rcc_clock_setup_in_hsi_out_48mhz();
rcc_periph_clock_enable(RCC_GPIOA);
rcc_periph_clock_enable(RCC_GPIOB);
rcc_periph_clock_enable(RCC_SPI1);
rcc_periph_clock_enable(RCC_USART1);
rcc_periph_clock_enable(RCC_USART2);
rcc_periph_clock_enable(RCC_TIM1);
rcc_periph_clock_enable(RCC_TIM2);
rcc_periph_clock_enable(RCC_TIM3);
rcc_periph_clock_enable(RCC_TIM14);
return 0;
}

@ -29,6 +29,13 @@ int gpio_init(void)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN,
GPIO1);
/* Set up GPIOs for timers. */
gpio_primary_remap(0, AFIO_MAPR_TIM2_REMAP_PARTIAL_REMAP1);
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ,
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO_TIM2_PR1_CH3);
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ,
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO_TIM2_PR1_CH4);
return 0;
}

@ -10,6 +10,7 @@ int rcc_init(void)
rcc_periph_clock_enable(RCC_SPI1);
rcc_periph_clock_enable(RCC_USART1);
rcc_periph_clock_enable(RCC_USART2);
rcc_periph_clock_enable(RCC_TIM2);
return 0;
}

Loading…
Cancel
Save