|
@@ -24,6 +24,7 @@
|
|
/* USER CODE BEGIN Includes */
|
|
/* USER CODE BEGIN Includes */
|
|
|
|
|
|
/* USER CODE END Includes */
|
|
/* USER CODE END Includes */
|
|
|
|
+extern DMA_HandleTypeDef hdma_spi3_rx;
|
|
|
|
|
|
/* Private typedef -----------------------------------------------------------*/
|
|
/* Private typedef -----------------------------------------------------------*/
|
|
/* USER CODE BEGIN TD */
|
|
/* USER CODE BEGIN TD */
|
|
@@ -58,7 +59,9 @@
|
|
/* USER CODE BEGIN 0 */
|
|
/* USER CODE BEGIN 0 */
|
|
|
|
|
|
/* USER CODE END 0 */
|
|
/* USER CODE END 0 */
|
|
-/**
|
|
|
|
|
|
+
|
|
|
|
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
|
|
|
+ /**
|
|
* Initializes the Global MSP.
|
|
* Initializes the Global MSP.
|
|
*/
|
|
*/
|
|
void HAL_MspInit(void)
|
|
void HAL_MspInit(void)
|
|
@@ -77,6 +80,345 @@ void HAL_MspInit(void)
|
|
/* USER CODE END MspInit 1 */
|
|
/* USER CODE END MspInit 1 */
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+* @brief CRC MSP Initialization
|
|
|
|
+* This function configures the hardware resources used in this example
|
|
|
|
+* @param hcrc: CRC handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_CRC_MspInit(CRC_HandleTypeDef* hcrc)
|
|
|
|
+{
|
|
|
|
+ if(hcrc->Instance==CRC)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN CRC_MspInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END CRC_MspInit 0 */
|
|
|
|
+ /* Peripheral clock enable */
|
|
|
|
+ __HAL_RCC_CRC_CLK_ENABLE();
|
|
|
|
+ /* USER CODE BEGIN CRC_MspInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END CRC_MspInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+* @brief CRC MSP De-Initialization
|
|
|
|
+* This function freeze the hardware resources used in this example
|
|
|
|
+* @param hcrc: CRC handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_CRC_MspDeInit(CRC_HandleTypeDef* hcrc)
|
|
|
|
+{
|
|
|
|
+ if(hcrc->Instance==CRC)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN CRC_MspDeInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END CRC_MspDeInit 0 */
|
|
|
|
+ /* Peripheral clock disable */
|
|
|
|
+ __HAL_RCC_CRC_CLK_DISABLE();
|
|
|
|
+ /* USER CODE BEGIN CRC_MspDeInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END CRC_MspDeInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+* @brief I2S MSP Initialization
|
|
|
|
+* This function configures the hardware resources used in this example
|
|
|
|
+* @param hi2s: I2S handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_I2S_MspInit(I2S_HandleTypeDef* hi2s)
|
|
|
|
+{
|
|
|
|
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
|
|
+ if(hi2s->Instance==SPI3)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN SPI3_MspInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END SPI3_MspInit 0 */
|
|
|
|
+ /* Peripheral clock enable */
|
|
|
|
+ __HAL_RCC_SPI3_CLK_ENABLE();
|
|
|
|
+
|
|
|
|
+ __HAL_RCC_GPIOB_CLK_ENABLE();
|
|
|
|
+ __HAL_RCC_GPIOA_CLK_ENABLE();
|
|
|
|
+ __HAL_RCC_GPIOD_CLK_ENABLE();
|
|
|
|
+ /**I2S3 GPIO Configuration
|
|
|
|
+ PB3 ------> I2S3_CK
|
|
|
|
+ PA15 ------> I2S3_WS
|
|
|
|
+ PD6 ------> I2S3_SD
|
|
|
|
+ */
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_3;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
|
|
|
|
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_15;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
|
|
|
|
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_6;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF5_I2S3ext;
|
|
|
|
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ /* I2S3 DMA Init */
|
|
|
|
+ /* SPI3_RX Init */
|
|
|
|
+ hdma_spi3_rx.Instance = DMA1_Stream0;
|
|
|
|
+ hdma_spi3_rx.Init.Channel = DMA_CHANNEL_0;
|
|
|
|
+ hdma_spi3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
|
|
|
+ hdma_spi3_rx.Init.PeriphInc = DMA_PINC_DISABLE;
|
|
|
|
+ hdma_spi3_rx.Init.MemInc = DMA_MINC_ENABLE;
|
|
|
|
+ hdma_spi3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
|
|
|
+ hdma_spi3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
|
|
|
+ hdma_spi3_rx.Init.Mode = DMA_NORMAL;
|
|
|
|
+ hdma_spi3_rx.Init.Priority = DMA_PRIORITY_LOW;
|
|
|
|
+ hdma_spi3_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
|
|
|
+ if (HAL_DMA_Init(&hdma_spi3_rx) != HAL_OK)
|
|
|
|
+ {
|
|
|
|
+ Error_Handler();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ __HAL_LINKDMA(hi2s,hdmarx,hdma_spi3_rx);
|
|
|
|
+
|
|
|
|
+ /* I2S3 interrupt Init */
|
|
|
|
+ HAL_NVIC_SetPriority(SPI3_IRQn, 0, 0);
|
|
|
|
+ HAL_NVIC_EnableIRQ(SPI3_IRQn);
|
|
|
|
+ /* USER CODE BEGIN SPI3_MspInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END SPI3_MspInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+* @brief I2S MSP De-Initialization
|
|
|
|
+* This function freeze the hardware resources used in this example
|
|
|
|
+* @param hi2s: I2S handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_I2S_MspDeInit(I2S_HandleTypeDef* hi2s)
|
|
|
|
+{
|
|
|
|
+ if(hi2s->Instance==SPI3)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN SPI3_MspDeInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END SPI3_MspDeInit 0 */
|
|
|
|
+ /* Peripheral clock disable */
|
|
|
|
+ __HAL_RCC_SPI3_CLK_DISABLE();
|
|
|
|
+
|
|
|
|
+ /**I2S3 GPIO Configuration
|
|
|
|
+ PB3 ------> I2S3_CK
|
|
|
|
+ PA15 ------> I2S3_WS
|
|
|
|
+ PD6 ------> I2S3_SD
|
|
|
|
+ */
|
|
|
|
+ HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3);
|
|
|
|
+
|
|
|
|
+ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
|
|
|
|
+
|
|
|
|
+ HAL_GPIO_DeInit(GPIOD, GPIO_PIN_6);
|
|
|
|
+
|
|
|
|
+ /* I2S3 DMA DeInit */
|
|
|
|
+ HAL_DMA_DeInit(hi2s->hdmarx);
|
|
|
|
+
|
|
|
|
+ /* I2S3 interrupt DeInit */
|
|
|
|
+ HAL_NVIC_DisableIRQ(SPI3_IRQn);
|
|
|
|
+ /* USER CODE BEGIN SPI3_MspDeInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END SPI3_MspDeInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+* @brief QSPI MSP Initialization
|
|
|
|
+* This function configures the hardware resources used in this example
|
|
|
|
+* @param hqspi: QSPI handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
|
|
|
|
+{
|
|
|
|
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
|
|
+ if(hqspi->Instance==QUADSPI)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN QUADSPI_MspInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END QUADSPI_MspInit 0 */
|
|
|
|
+ /* Peripheral clock enable */
|
|
|
|
+ __HAL_RCC_QSPI_CLK_ENABLE();
|
|
|
|
+
|
|
|
|
+ __HAL_RCC_GPIOB_CLK_ENABLE();
|
|
|
|
+ __HAL_RCC_GPIOF_CLK_ENABLE();
|
|
|
|
+ /**QUADSPI GPIO Configuration
|
|
|
|
+ PB6 ------> QUADSPI_BK1_NCS
|
|
|
|
+ PF7 ------> QUADSPI_BK1_IO2
|
|
|
|
+ PF6 ------> QUADSPI_BK1_IO3
|
|
|
|
+ PF10 ------> QUADSPI_CLK
|
|
|
|
+ PF9 ------> QUADSPI_BK1_IO1
|
|
|
|
+ PF8 ------> QUADSPI_BK1_IO0
|
|
|
|
+ */
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_6;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF10_QSPI;
|
|
|
|
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_10;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF9_QSPI;
|
|
|
|
+ HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_8;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF10_QSPI;
|
|
|
|
+ HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ /* USER CODE BEGIN QUADSPI_MspInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END QUADSPI_MspInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+* @brief QSPI MSP De-Initialization
|
|
|
|
+* This function freeze the hardware resources used in this example
|
|
|
|
+* @param hqspi: QSPI handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
|
|
|
|
+{
|
|
|
|
+ if(hqspi->Instance==QUADSPI)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END QUADSPI_MspDeInit 0 */
|
|
|
|
+ /* Peripheral clock disable */
|
|
|
|
+ __HAL_RCC_QSPI_CLK_DISABLE();
|
|
|
|
+
|
|
|
|
+ /**QUADSPI GPIO Configuration
|
|
|
|
+ PB6 ------> QUADSPI_BK1_NCS
|
|
|
|
+ PF7 ------> QUADSPI_BK1_IO2
|
|
|
|
+ PF6 ------> QUADSPI_BK1_IO3
|
|
|
|
+ PF10 ------> QUADSPI_CLK
|
|
|
|
+ PF9 ------> QUADSPI_BK1_IO1
|
|
|
|
+ PF8 ------> QUADSPI_BK1_IO0
|
|
|
|
+ */
|
|
|
|
+ HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
|
|
|
|
+
|
|
|
|
+ HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_10|GPIO_PIN_9
|
|
|
|
+ |GPIO_PIN_8);
|
|
|
|
+
|
|
|
|
+ /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END QUADSPI_MspDeInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+* @brief TIM_Base MSP Initialization
|
|
|
|
+* This function configures the hardware resources used in this example
|
|
|
|
+* @param htim_base: TIM_Base handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|
|
|
+{
|
|
|
|
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
|
|
+ if(htim_base->Instance==TIM4)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN TIM4_MspInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END TIM4_MspInit 0 */
|
|
|
|
+ /* Peripheral clock enable */
|
|
|
|
+ __HAL_RCC_TIM4_CLK_ENABLE();
|
|
|
|
+
|
|
|
|
+ __HAL_RCC_GPIOD_CLK_ENABLE();
|
|
|
|
+ /**TIM4 GPIO Configuration
|
|
|
|
+ PD12 ------> TIM4_CH1
|
|
|
|
+ */
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_12;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
|
|
|
|
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ /* USER CODE BEGIN TIM4_MspInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END TIM4_MspInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|
|
|
+{
|
|
|
|
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
|
|
+ if(htim->Instance==TIM4)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN TIM4_MspPostInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END TIM4_MspPostInit 0 */
|
|
|
|
+
|
|
|
|
+ __HAL_RCC_GPIOD_CLK_ENABLE();
|
|
|
|
+ /**TIM4 GPIO Configuration
|
|
|
|
+ PD13 ------> TIM4_CH2
|
|
|
|
+ */
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_13;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
|
|
|
|
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ /* USER CODE BEGIN TIM4_MspPostInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END TIM4_MspPostInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+/**
|
|
|
|
+* @brief TIM_Base MSP De-Initialization
|
|
|
|
+* This function freeze the hardware resources used in this example
|
|
|
|
+* @param htim_base: TIM_Base handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|
|
|
+{
|
|
|
|
+ if(htim_base->Instance==TIM4)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN TIM4_MspDeInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END TIM4_MspDeInit 0 */
|
|
|
|
+ /* Peripheral clock disable */
|
|
|
|
+ __HAL_RCC_TIM4_CLK_DISABLE();
|
|
|
|
+
|
|
|
|
+ /**TIM4 GPIO Configuration
|
|
|
|
+ PD12 ------> TIM4_CH1
|
|
|
|
+ PD13 ------> TIM4_CH2
|
|
|
|
+ */
|
|
|
|
+ HAL_GPIO_DeInit(GPIOD, GPIO_PIN_12|GPIO_PIN_13);
|
|
|
|
+
|
|
|
|
+ /* USER CODE BEGIN TIM4_MspDeInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END TIM4_MspDeInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @brief UART MSP Initialization
|
|
* @brief UART MSP Initialization
|
|
* This function configures the hardware resources used in this example
|
|
* This function configures the hardware resources used in this example
|
|
@@ -142,6 +484,332 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+* @brief PCD MSP Initialization
|
|
|
|
+* This function configures the hardware resources used in this example
|
|
|
|
+* @param hpcd: PCD handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
|
|
|
|
+{
|
|
|
|
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
|
|
+ if(hpcd->Instance==USB_OTG_FS)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END USB_OTG_FS_MspInit 0 */
|
|
|
|
+
|
|
|
|
+ __HAL_RCC_GPIOA_CLK_ENABLE();
|
|
|
|
+ /**USB_OTG_FS GPIO Configuration
|
|
|
|
+ PA12 ------> USB_OTG_FS_DP
|
|
|
|
+ PA11 ------> USB_OTG_FS_DM
|
|
|
|
+ */
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
|
|
|
|
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ /* Peripheral clock enable */
|
|
|
|
+ __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
|
|
|
+ /* USB_OTG_FS interrupt Init */
|
|
|
|
+ HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
|
|
|
|
+ HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
|
|
|
|
+ /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END USB_OTG_FS_MspInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+* @brief PCD MSP De-Initialization
|
|
|
|
+* This function freeze the hardware resources used in this example
|
|
|
|
+* @param hpcd: PCD handle pointer
|
|
|
|
+* @retval None
|
|
|
|
+*/
|
|
|
|
+void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
|
|
|
|
+{
|
|
|
|
+ if(hpcd->Instance==USB_OTG_FS)
|
|
|
|
+ {
|
|
|
|
+ /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END USB_OTG_FS_MspDeInit 0 */
|
|
|
|
+ /* Peripheral clock disable */
|
|
|
|
+ __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
|
|
|
|
+
|
|
|
|
+ /**USB_OTG_FS GPIO Configuration
|
|
|
|
+ PA12 ------> USB_OTG_FS_DP
|
|
|
|
+ PA11 ------> USB_OTG_FS_DM
|
|
|
|
+ */
|
|
|
|
+ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_12|GPIO_PIN_11);
|
|
|
|
+
|
|
|
|
+ /* USB_OTG_FS interrupt DeInit */
|
|
|
|
+ HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
|
|
|
|
+ /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END USB_OTG_FS_MspDeInit 1 */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static uint32_t FMC_Initialized = 0;
|
|
|
|
+
|
|
|
|
+static void HAL_FMC_MspInit(void){
|
|
|
|
+ /* USER CODE BEGIN FMC_MspInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END FMC_MspInit 0 */
|
|
|
|
+ GPIO_InitTypeDef GPIO_InitStruct;
|
|
|
|
+ if (FMC_Initialized) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ FMC_Initialized = 1;
|
|
|
|
+ /* Peripheral clock enable */
|
|
|
|
+ __HAL_RCC_FMC_CLK_ENABLE();
|
|
|
|
+
|
|
|
|
+ /** FMC GPIO Configuration
|
|
|
|
+ PE1 ------> FMC_NBL1
|
|
|
|
+ PE0 ------> FMC_NBL0
|
|
|
|
+ PG15 ------> FMC_SDNCAS
|
|
|
|
+ PD0 ------> FMC_D2
|
|
|
|
+ PI4 ------> FMC_NBL2
|
|
|
|
+ PD1 ------> FMC_D3
|
|
|
|
+ PI3 ------> FMC_D27
|
|
|
|
+ PI2 ------> FMC_D26
|
|
|
|
+ PF0 ------> FMC_A0
|
|
|
|
+ PI5 ------> FMC_NBL3
|
|
|
|
+ PI7 ------> FMC_D29
|
|
|
|
+ PI10 ------> FMC_D31
|
|
|
|
+ PI6 ------> FMC_D28
|
|
|
|
+ PH15 ------> FMC_D23
|
|
|
|
+ PI1 ------> FMC_D25
|
|
|
|
+ PF1 ------> FMC_A1
|
|
|
|
+ PI9 ------> FMC_D30
|
|
|
|
+ PH13 ------> FMC_D21
|
|
|
|
+ PH14 ------> FMC_D22
|
|
|
|
+ PI0 ------> FMC_D24
|
|
|
|
+ PF2 ------> FMC_A2
|
|
|
|
+ PF3 ------> FMC_A3
|
|
|
|
+ PG8 ------> FMC_SDCLK
|
|
|
|
+ PF4 ------> FMC_A4
|
|
|
|
+ PH3 ------> FMC_SDNE0
|
|
|
|
+ PF5 ------> FMC_A5
|
|
|
|
+ PH2 ------> FMC_SDCKE0
|
|
|
|
+ PD15 ------> FMC_D1
|
|
|
|
+ PD10 ------> FMC_D15
|
|
|
|
+ PD14 ------> FMC_D0
|
|
|
|
+ PD9 ------> FMC_D14
|
|
|
|
+ PD8 ------> FMC_D13
|
|
|
|
+ PC0 ------> FMC_SDNWE
|
|
|
|
+ PF12 ------> FMC_A6
|
|
|
|
+ PG1 ------> FMC_A11
|
|
|
|
+ PF15 ------> FMC_A9
|
|
|
|
+ PH12 ------> FMC_D20
|
|
|
|
+ PF13 ------> FMC_A7
|
|
|
|
+ PG0 ------> FMC_A10
|
|
|
|
+ PE8 ------> FMC_D5
|
|
|
|
+ PG5 ------> FMC_BA1
|
|
|
|
+ PG4 ------> FMC_BA0
|
|
|
|
+ PH9 ------> FMC_D17
|
|
|
|
+ PH11 ------> FMC_D19
|
|
|
|
+ PF14 ------> FMC_A8
|
|
|
|
+ PF11 ------> FMC_SDNRAS
|
|
|
|
+ PE9 ------> FMC_D6
|
|
|
|
+ PE11 ------> FMC_D8
|
|
|
|
+ PE14 ------> FMC_D11
|
|
|
|
+ PH8 ------> FMC_D16
|
|
|
|
+ PH10 ------> FMC_D18
|
|
|
|
+ PE7 ------> FMC_D4
|
|
|
|
+ PE10 ------> FMC_D7
|
|
|
|
+ PE12 ------> FMC_D9
|
|
|
|
+ PE15 ------> FMC_D12
|
|
|
|
+ PE13 ------> FMC_D10
|
|
|
|
+ */
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_8|GPIO_PIN_9
|
|
|
|
+ |GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_10
|
|
|
|
+ |GPIO_PIN_12|GPIO_PIN_15|GPIO_PIN_13;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
|
|
|
|
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_1|GPIO_PIN_0
|
|
|
|
+ |GPIO_PIN_5|GPIO_PIN_4;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
|
|
|
|
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10
|
|
|
|
+ |GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
|
|
|
|
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_5
|
|
|
|
+ |GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_6|GPIO_PIN_1
|
|
|
|
+ |GPIO_PIN_9|GPIO_PIN_0;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
|
|
|
|
+ HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
|
|
|
|
+ |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15
|
|
|
|
+ |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
|
|
|
|
+ HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_3
|
|
|
|
+ |GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_9|GPIO_PIN_11
|
|
|
|
+ |GPIO_PIN_8|GPIO_PIN_10;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
|
|
|
|
+ HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ GPIO_InitStruct.Pin = GPIO_PIN_0;
|
|
|
|
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
|
|
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
+ GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
|
|
|
|
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
|
|
|
+
|
|
|
|
+ /* USER CODE BEGIN FMC_MspInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END FMC_MspInit 1 */
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
|
|
|
|
+ /* USER CODE BEGIN SDRAM_MspInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END SDRAM_MspInit 0 */
|
|
|
|
+ HAL_FMC_MspInit();
|
|
|
|
+ /* USER CODE BEGIN SDRAM_MspInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END SDRAM_MspInit 1 */
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static uint32_t FMC_DeInitialized = 0;
|
|
|
|
+
|
|
|
|
+static void HAL_FMC_MspDeInit(void){
|
|
|
|
+ /* USER CODE BEGIN FMC_MspDeInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END FMC_MspDeInit 0 */
|
|
|
|
+ if (FMC_DeInitialized) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ FMC_DeInitialized = 1;
|
|
|
|
+ /* Peripheral clock enable */
|
|
|
|
+ __HAL_RCC_FMC_CLK_DISABLE();
|
|
|
|
+
|
|
|
|
+ /** FMC GPIO Configuration
|
|
|
|
+ PE1 ------> FMC_NBL1
|
|
|
|
+ PE0 ------> FMC_NBL0
|
|
|
|
+ PG15 ------> FMC_SDNCAS
|
|
|
|
+ PD0 ------> FMC_D2
|
|
|
|
+ PI4 ------> FMC_NBL2
|
|
|
|
+ PD1 ------> FMC_D3
|
|
|
|
+ PI3 ------> FMC_D27
|
|
|
|
+ PI2 ------> FMC_D26
|
|
|
|
+ PF0 ------> FMC_A0
|
|
|
|
+ PI5 ------> FMC_NBL3
|
|
|
|
+ PI7 ------> FMC_D29
|
|
|
|
+ PI10 ------> FMC_D31
|
|
|
|
+ PI6 ------> FMC_D28
|
|
|
|
+ PH15 ------> FMC_D23
|
|
|
|
+ PI1 ------> FMC_D25
|
|
|
|
+ PF1 ------> FMC_A1
|
|
|
|
+ PI9 ------> FMC_D30
|
|
|
|
+ PH13 ------> FMC_D21
|
|
|
|
+ PH14 ------> FMC_D22
|
|
|
|
+ PI0 ------> FMC_D24
|
|
|
|
+ PF2 ------> FMC_A2
|
|
|
|
+ PF3 ------> FMC_A3
|
|
|
|
+ PG8 ------> FMC_SDCLK
|
|
|
|
+ PF4 ------> FMC_A4
|
|
|
|
+ PH3 ------> FMC_SDNE0
|
|
|
|
+ PF5 ------> FMC_A5
|
|
|
|
+ PH2 ------> FMC_SDCKE0
|
|
|
|
+ PD15 ------> FMC_D1
|
|
|
|
+ PD10 ------> FMC_D15
|
|
|
|
+ PD14 ------> FMC_D0
|
|
|
|
+ PD9 ------> FMC_D14
|
|
|
|
+ PD8 ------> FMC_D13
|
|
|
|
+ PC0 ------> FMC_SDNWE
|
|
|
|
+ PF12 ------> FMC_A6
|
|
|
|
+ PG1 ------> FMC_A11
|
|
|
|
+ PF15 ------> FMC_A9
|
|
|
|
+ PH12 ------> FMC_D20
|
|
|
|
+ PF13 ------> FMC_A7
|
|
|
|
+ PG0 ------> FMC_A10
|
|
|
|
+ PE8 ------> FMC_D5
|
|
|
|
+ PG5 ------> FMC_BA1
|
|
|
|
+ PG4 ------> FMC_BA0
|
|
|
|
+ PH9 ------> FMC_D17
|
|
|
|
+ PH11 ------> FMC_D19
|
|
|
|
+ PF14 ------> FMC_A8
|
|
|
|
+ PF11 ------> FMC_SDNRAS
|
|
|
|
+ PE9 ------> FMC_D6
|
|
|
|
+ PE11 ------> FMC_D8
|
|
|
|
+ PE14 ------> FMC_D11
|
|
|
|
+ PH8 ------> FMC_D16
|
|
|
|
+ PH10 ------> FMC_D18
|
|
|
|
+ PE7 ------> FMC_D4
|
|
|
|
+ PE10 ------> FMC_D7
|
|
|
|
+ PE12 ------> FMC_D9
|
|
|
|
+ PE15 ------> FMC_D12
|
|
|
|
+ PE13 ------> FMC_D10
|
|
|
|
+ */
|
|
|
|
+ HAL_GPIO_DeInit(GPIOE, GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_8|GPIO_PIN_9
|
|
|
|
+ |GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_10
|
|
|
|
+ |GPIO_PIN_12|GPIO_PIN_15|GPIO_PIN_13);
|
|
|
|
+
|
|
|
|
+ HAL_GPIO_DeInit(GPIOG, GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_1|GPIO_PIN_0
|
|
|
|
+ |GPIO_PIN_5|GPIO_PIN_4);
|
|
|
|
+
|
|
|
|
+ HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10
|
|
|
|
+ |GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8);
|
|
|
|
+
|
|
|
|
+ HAL_GPIO_DeInit(GPIOI, GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_5
|
|
|
|
+ |GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_6|GPIO_PIN_1
|
|
|
|
+ |GPIO_PIN_9|GPIO_PIN_0);
|
|
|
|
+
|
|
|
|
+ HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
|
|
|
|
+ |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15
|
|
|
|
+ |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11);
|
|
|
|
+
|
|
|
|
+ HAL_GPIO_DeInit(GPIOH, GPIO_PIN_15|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_3
|
|
|
|
+ |GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_9|GPIO_PIN_11
|
|
|
|
+ |GPIO_PIN_8|GPIO_PIN_10);
|
|
|
|
+
|
|
|
|
+ HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
|
|
|
|
+
|
|
|
|
+ /* USER CODE BEGIN FMC_MspDeInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END FMC_MspDeInit 1 */
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
|
|
|
|
+ /* USER CODE BEGIN SDRAM_MspDeInit 0 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END SDRAM_MspDeInit 0 */
|
|
|
|
+ HAL_FMC_MspDeInit();
|
|
|
|
+ /* USER CODE BEGIN SDRAM_MspDeInit 1 */
|
|
|
|
+
|
|
|
|
+ /* USER CODE END SDRAM_MspDeInit 1 */
|
|
|
|
+}
|
|
|
|
+
|
|
/* USER CODE BEGIN 1 */
|
|
/* USER CODE BEGIN 1 */
|
|
|
|
|
|
/* USER CODE END 1 */
|
|
/* USER CODE END 1 */
|