Procházet zdrojové kódy

Fix misstaces in RCC, EXTI amd SPI1 DMA.

Vladimir N. Shilov před 3 roky
rodič
revize
97eaa0d6cd
1 změnil soubory, kde provedl 10 přidání a 10 odebrání
  1. 10 10
      Src/board.c

+ 10 - 10
Src/board.c

@@ -228,8 +228,8 @@ void SystemClock_Config(void)
   }
 
   /* Main PLL configuration and activation */
-  RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLR);
-  RCC->PLLCFGR |= (RCC_PLLCFGR_PLLSRC_HSI | (9 << RCC_PLLCFGR_PLLN_Pos) | RCC_PLLCFGR_PLLR_2 | RCC_PLLCFGR_PLLR_0);
+  //RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLR);
+  RCC->PLLCFGR = (RCC_PLLCFGR_PLLSRC_HSI | RCC_PLLCFGR_PLLM_0 | (9 << RCC_PLLCFGR_PLLN_Pos) | RCC_PLLCFGR_PLLR_1);
   RCC->PLLCFGR |= RCC_PLLCFGR_PLLREN; // RCC_PLL_EnableDomain_SYS
   RCC->CR |= RCC_CR_PLLON; // RCC_PLL_Enable
   while((RCC->CR & RCC_CR_PLLRDY) == 0)
@@ -267,14 +267,14 @@ void SystemClock_Config(void)
 static void GPIO_Init(void)
 {
   /* EXTI Line: falling, no pull, input */
-  // mode
-  EXTI->EMR1 &= ~(EXTI_IMR1_IM14);
-  EXTI->EMR1 |= EXTI_IMR1_IM14;
+  // interrupt on line 14
+  EXTI->IMR1 |= EXTI_IMR1_IM14;
+  // wake-up with event ?
+  //EXTI->EMR1 |= EXTI_EMR1_EM14;
   // TRIGGER FALLING
-  EXTI->FTSR1 &= ~(EXTI_IMR1_IM14);
-  EXTI->FTSR1 |= EXTI_IMR1_IM14;
-  // ?
-  EXTI->FTSR1 |= EXTI_IMR1_IM14;
+  EXTI->FTSR1 = EXTI_FTSR1_FT14;
+  // external interrupt selection - PC14 to EXTI14
+  EXTI->EXTICR[3] = EXTI_EXTICR4_EXTI14_1;
 
   /* EXTI interrupt init*/
   NVIC_SetPriority(EXTI4_15_IRQn, 0);
@@ -405,7 +405,7 @@ static void SPI1_Init(void)
 
   /* SPI1_TX Init: Priority high, Memory increment, read from memory, circular mode,
      Enable DMA transfer complete/error interrupts */
-  DMA1_Channel1->CCR = (DMA_CCR_PL_1 | DMA_CCR_MINC | DMA_CCR_CIRC | DMA_CCR_TEIE | DMA_CCR_TCIE);
+  DMA1_Channel1->CCR = (DMA_CCR_PL_1 | DMA_CCR_MINC | DMA_CCR_CIRC | DMA_CCR_TEIE | DMA_CCR_DIR | DMA_CCR_TCIE);
   /* Route DMA channel 1 to SPI1 TX */
   DMAMUX1_Channel1->CCR = 0x11;