thomas haine
/
CIS001_v2_v2
cis001v2
stm32h7xx_hal_msp.cpp
- Committer:
- thomashaine
- Date:
- 2021-02-10
- Revision:
- 8:66caa906d24c
- Parent:
- 0:e7352f4f3dcb
File content as of revision 8:66caa906d24c:
/* USER CODE BEGIN Header */ /** ****************************************************************************** * File Name : stm32h7xx_hal_msp.c * Description : This file provides code for the MSP Initialization * and de-Initialization codes. ****************************************************************************** * @attention * * <h2><center>© Copyright (c) 2020 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "stm32h7xx_hal.h" #include "main.h" extern DMA_HandleTypeDef hdma_dcmi; extern "C" void _Error_Handler(char *, int); /** * Initializes the Global MSP. */ void HAL_MspInit(void) { __HAL_RCC_SYSCFG_CLK_ENABLE(); HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2); //HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); // System interrupt init // MemoryManagement_IRQn interrupt configuration HAL_NVIC_SetPriority(MemoryManagement_IRQn, 0, 0); // BusFault_IRQn interrupt configuration HAL_NVIC_SetPriority(BusFault_IRQn, 0, 0); // UsageFault_IRQn interrupt configuration HAL_NVIC_SetPriority(UsageFault_IRQn, 0, 0); // SVCall_IRQn interrupt configuration HAL_NVIC_SetPriority(SVCall_IRQn, 0, 0); // DebugMonitor_IRQn interrupt configuration HAL_NVIC_SetPriority(DebugMonitor_IRQn, 0, 0); // PendSV_IRQn interrupt configuration HAL_NVIC_SetPriority(PendSV_IRQn, 0, 0); // SysTick_IRQn interrupt configuration HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } /** * @brief DCMI MSP Initialization * This function configures the hardware resources used in this example * @param hdcmi: DCMI handle pointer * @retval None */ void HAL_DCMI_MspInit(DCMI_HandleTypeDef* hdcmi) { GPIO_InitTypeDef GPIO_InitStruct = {0}; if(hdcmi->Instance==DCMI) { /* USER CODE BEGIN DCMI_MspInit 0 */ /* USER CODE END DCMI_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_DCMI_CLK_ENABLE(); __HAL_RCC_GPIOE_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOG_CLK_ENABLE(); /**DCMI GPIO Configuration PE4 ------> DCMI_D4 PE5 ------> DCMI_D6 PE6 ------> DCMI_D7 PA4 ------> DCMI_HSYNC PA6 ------> DCMI_PIXCLK PB13 ------> DCMI_D2 PC6 ------> DCMI_D0 PC7 ------> DCMI_D1 PC9 ------> DCMI_D3 PC10 ------> DCMI_D8 PC12 ------> DCMI_D9 PD3 ------> DCMI_D5 PG9 ------> DCMI_VSYNC */ GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF13_DCMI; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF13_DCMI; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 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_AF13_DCMI; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_9|GPIO_PIN_10 |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_AF13_DCMI; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF13_DCMI; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF13_DCMI; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); /* DCMI DMA Init */ /* DCMI_PSSI Init */ hdma_dcmi.Instance = DMA1_Stream0; hdma_dcmi.Init.Request = DMA_REQUEST_DCMI; hdma_dcmi.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma_dcmi.Init.PeriphInc = DMA_PINC_DISABLE; hdma_dcmi.Init.MemInc = DMA_MINC_ENABLE; hdma_dcmi.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; hdma_dcmi.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; hdma_dcmi.Init.Mode = DMA_CIRCULAR; hdma_dcmi.Init.Priority = DMA_PRIORITY_HIGH; hdma_dcmi.Init.FIFOMode = DMA_FIFOMODE_ENABLE; hdma_dcmi.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; hdma_dcmi.Init.MemBurst = DMA_MBURST_INC4; hdma_dcmi.Init.PeriphBurst = DMA_PBURST_SINGLE; if (HAL_DMA_Init(&hdma_dcmi) != HAL_OK) { Error_Handler(); } __HAL_LINKDMA(hdcmi,DMA_Handle,hdma_dcmi); /* DCMI interrupt Init */ //HAL_NVIC_SetPriority(DCMI_IRQn, 0x0F, 0); // 0 is highest priority //HAL_NVIC_EnableIRQ(DCMI_IRQn); HAL_NVIC_SetPriority(DCMI_IRQn, 0x00, 0); HAL_NVIC_EnableIRQ(DCMI_IRQn); /* USER CODE BEGIN DCMI_MspInit 1 */ /* USER CODE END DCMI_MspInit 1 */ } } /** * @brief DCMI MSP De-Initialization * This function freeze the hardware resources used in this example * @param hdcmi: DCMI handle pointer * @retval None */ void HAL_DCMI_MspDeInit(DCMI_HandleTypeDef* hdcmi) { if(hdcmi->Instance==DCMI) { /* USER CODE BEGIN DCMI_MspDeInit 0 */ /* USER CODE END DCMI_MspDeInit 0 */ /* Peripheral clock disable */ __HAL_RCC_DCMI_CLK_DISABLE(); /**DCMI GPIO Configuration PE4 ------> DCMI_D4 PE5 ------> DCMI_D6 PE6 ------> DCMI_D7 PA4 ------> DCMI_HSYNC PA6 ------> DCMI_PIXCLK PB13 ------> DCMI_D2 PC6 ------> DCMI_D0 PC7 ------> DCMI_D1 PC9 ------> DCMI_D3 PC10 ------> DCMI_D8 PC12 ------> DCMI_D9 PD3 ------> DCMI_D5 PG9 ------> DCMI_VSYNC */ HAL_GPIO_DeInit(GPIOE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6); HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_6); HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13); HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_9|GPIO_PIN_10 |GPIO_PIN_12); HAL_GPIO_DeInit(GPIOD, GPIO_PIN_3); HAL_GPIO_DeInit(GPIOG, GPIO_PIN_9); /* DCMI DMA DeInit */ /* USER CODE BEGIN DCMI_MspDeInit 1 */ /* USER CODE END DCMI_MspDeInit 1 */ } } /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/