Add a 'Reverse' action to the compass heading dive menu.
This allows the compass heading to be reversed for the return leg of the
dive - as a bonus the reversal will be logged, establishing at which
point in the log the dive was turned (mikeller)
line source
/**+ −
******************************************************************************+ −
* File Name : stm32f4xx_hal_msp.c+ −
* Date : 04/12/2014 15:39:26+ −
* Description : This file provides code for the MSP Initialization + −
* and de-Initialization codes.+ −
******************************************************************************+ −
*+ −
* COPYRIGHT(c) 2014 STMicroelectronics+ −
*+ −
* Redistribution and use in source and binary forms, with or without modification,+ −
* are permitted provided that the following conditions are met:+ −
* 1. Redistributions of source code must retain the above copyright notice,+ −
* this list of conditions and the following disclaimer.+ −
* 2. Redistributions in binary form must reproduce the above copyright notice,+ −
* this list of conditions and the following disclaimer in the documentation+ −
* and/or other materials provided with the distribution.+ −
* 3. Neither the name of STMicroelectronics nor the names of its contributors+ −
* may be used to endorse or promote products derived from this software+ −
* without specific prior written permission.+ −
*+ −
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+ −
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+ −
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+ −
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE+ −
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL+ −
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR+ −
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER+ −
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,+ −
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+ −
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+ −
*+ −
******************************************************************************+ −
*/+ −
/* Includes ------------------------------------------------------------------*/+ −
#include "stm32f4xx_hal.h"+ −
#include "ostc.h"+ −
+ −
+ −
DMA_HandleTypeDef hdma_spi1_tx;+ −
+ −
DMA_HandleTypeDef hdma_spi1_rx;+ −
+ −
/* USER CODE BEGIN 0 */+ −
+ −
/* USER CODE END 0 */+ −
+ −
/**+ −
* Initializes the Global MSP.+ −
*/+ −
void HAL_MspInit(void)+ −
{+ −
/* USER CODE BEGIN MspInit 0 */+ −
/* USER CODE END MspInit 0 */+ −
+ −
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2);+ −
+ −
/* System interrupt init*/+ −
/** SysTick_IRQn interrupt configuration+ −
*/+ −
HAL_NVIC_SetPriority(SysTick_IRQn, 1, 0);+ −
+ −
/* USER CODE BEGIN MspInit 1 */+ −
/* always set priority right */+ −
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2);+ −
/* USER CODE END MspInit 1 */+ −
}+ −
+ −
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)+ −
{+ −
+ −
if(hdma2d->Instance==DMA2D)+ −
{+ −
/* USER CODE BEGIN DMA2D_MspInit 0 */+ −
+ −
/* USER CODE END DMA2D_MspInit 0 */+ −
/* Peripheral clock enable */+ −
__DMA2D_CLK_ENABLE();+ −
/* USER CODE BEGIN DMA2D_MspInit 1 */+ −
HAL_NVIC_SetPriority(DMA2D_IRQn, 1, 2);+ −
HAL_NVIC_EnableIRQ(DMA2D_IRQn); + −
/* USER CODE END DMA2D_MspInit 1 */+ −
}+ −
+ −
}+ −
+ −
void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)+ −
{+ −
+ −
if(hdma2d->Instance==DMA2D)+ −
{+ −
/* USER CODE BEGIN DMA2D_MspDeInit 0 */+ −
+ −
/* USER CODE END DMA2D_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__DMA2D_CLK_DISABLE();+ −
/* USER CODE BEGIN DMA2D_MspDeInit 1 */+ −
__DMA2D_RELEASE_RESET();+ −
/* USER CODE END DMA2D_MspDeInit 1 */+ −
}+ −
+ −
}+ −
+ −
void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)+ −
{+ −
+ −
GPIO_InitTypeDef GPIO_InitStruct;+ −
if(hltdc->Instance==LTDC)+ −
{+ −
/* USER CODE BEGIN LTDC_MspInit 0 */+ −
__GPIOE_CLK_ENABLE();+ −
__GPIOF_CLK_ENABLE();+ −
__GPIOG_CLK_ENABLE();+ −
__GPIOH_CLK_ENABLE();+ −
__GPIOI_CLK_ENABLE();+ −
+ −
/* USER CODE END LTDC_MspInit 0 */+ −
/* Peripheral clock enable */+ −
__LTDC_CLK_ENABLE();+ −
+ −
/**LTDC GPIO Configuration + −
PE4 ------> LTDC_B0+ −
PE5 ------> LTDC_G0+ −
PE6 ------> LTDC_G1+ −
PI9 ------> LTDC_VSYNC+ −
PI10 ------> LTDC_HSYNC+ −
PF10 ------> LTDC_DE+ −
PH2 ------> LTDC_R0+ −
PH3 ------> LTDC_R1+ −
PH8 ------> LTDC_R2+ −
PH9 ------> LTDC_R3+ −
PH10 ------> LTDC_R4+ −
PH11 ------> LTDC_R5+ −
PH12 ------> LTDC_R6+ −
PG6 ------> LTDC_R7+ −
PG7 ------> LTDC_CLK+ −
PH13 ------> LTDC_G2+ −
PH14 ------> LTDC_G3+ −
PH15 ------> LTDC_G4+ −
PI0 ------> LTDC_G5+ −
PI1 ------> LTDC_G6+ −
PI2 ------> LTDC_G7+ −
PG10 ------> LTDC_B2+ −
PG11 ------> LTDC_B3+ −
PG12 ------> LTDC_B1+ −
PI4 ------> LTDC_B4+ −
PI5 ------> LTDC_B5+ −
PI6 ------> LTDC_B6+ −
PI7 ------> LTDC_B7 + −
*/+ −
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_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;+ −
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_1 + −
|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6 + −
|GPIO_PIN_7;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;+ −
HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_10;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;+ −
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_8|GPIO_PIN_9 + −
|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13 + −
|GPIO_PIN_14|GPIO_PIN_15;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;+ −
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_11 + −
|GPIO_PIN_12;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;+ −
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);+ −
+ −
/* USER CODE BEGIN LTDC_MspInit 1 */+ −
+ −
/* USER CODE END LTDC_MspInit 1 */+ −
}+ −
+ −
}+ −
+ −
void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)+ −
{+ −
+ −
if(hltdc->Instance==LTDC)+ −
{+ −
/* USER CODE BEGIN LTDC_MspDeInit 0 */+ −
+ −
/* USER CODE END LTDC_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__LTDC_CLK_DISABLE();+ −
+ −
/**LTDC GPIO Configuration + −
PE4 ------> LTDC_B0+ −
PE5 ------> LTDC_G0+ −
PE6 ------> LTDC_G1+ −
PI9 ------> LTDC_VSYNC+ −
PI10 ------> LTDC_HSYNC+ −
PF10 ------> LTDC_DE+ −
PH2 ------> LTDC_R0+ −
PH3 ------> LTDC_R1+ −
PH8 ------> LTDC_R2+ −
PH9 ------> LTDC_R3+ −
PH10 ------> LTDC_R4+ −
PH11 ------> LTDC_R5+ −
PH12 ------> LTDC_R6+ −
PG6 ------> LTDC_R7+ −
PG7 ------> LTDC_CLK+ −
PH13 ------> LTDC_G2+ −
PH14 ------> LTDC_G3+ −
PH15 ------> LTDC_G4+ −
PI0 ------> LTDC_G5+ −
PI1 ------> LTDC_G6+ −
PI2 ------> LTDC_G7+ −
PG10 ------> LTDC_B2+ −
PG11 ------> LTDC_B3+ −
PG12 ------> LTDC_B1+ −
PI4 ------> LTDC_B4+ −
PI5 ------> LTDC_B5+ −
PI6 ------> LTDC_B6+ −
PI7 ------> LTDC_B7 + −
*/+ −
HAL_GPIO_DeInit(GPIOE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);+ −
+ −
HAL_GPIO_DeInit(GPIOI, GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_1 + −
|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6 + −
|GPIO_PIN_7);+ −
+ −
HAL_GPIO_DeInit(GPIOF, GPIO_PIN_10);+ −
+ −
HAL_GPIO_DeInit(GPIOH, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_8|GPIO_PIN_9 + −
|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13 + −
|GPIO_PIN_14|GPIO_PIN_15);+ −
+ −
HAL_GPIO_DeInit(GPIOG, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_11 + −
|GPIO_PIN_12);+ −
+ −
/* USER CODE BEGIN LTDC_MspDeInit 1 */+ −
__LTDC_RELEASE_RESET();+ −
+ −
/* USER CODE END LTDC_MspDeInit 1 */+ −
}+ −
+ −
}+ −
+ −
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)+ −
{+ −
+ −
GPIO_InitTypeDef GPIO_InitStruct;+ −
if(hspi->Instance==SPI1)+ −
{+ −
/* USER CODE BEGIN SPI1_MspInit 0 */+ −
__GPIOA_CLK_ENABLE();+ −
__GPIOB_CLK_ENABLE();+ −
__DMA2_CLK_ENABLE();+ −
+ −
/* USER CODE END SPI1_MspInit 0 */+ −
/* Peripheral clock enable */+ −
__SPI1_CLK_ENABLE();+ −
+ −
/**SPI1 GPIO Configuration + −
alt: PA4 ------> SPI1_NSS, jetzt soft+ −
PA5 ------> SPI1_SCK+ −
alt: PA6 ------> SPI1_MISO+ −
neu: PB4 ------> SPI1_MISO+ −
PA7 ------> SPI1_MOSI + −
*/+ −
// GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;+ −
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;//GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;+ −
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);+ −
GPIO_InitStruct.Pin = GPIO_PIN_4;+ −
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);+ −
+ −
/* Peripheral DMA init*/+ −
+ −
hdma_spi1_tx.Instance = DMA2_Stream3;+ −
hdma_spi1_tx.Init.Channel = DMA_CHANNEL_3;+ −
hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;+ −
hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE;+ −
hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE;+ −
hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;+ −
hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;+ −
hdma_spi1_tx.Init.Mode = DMA_NORMAL;+ −
hdma_spi1_tx.Init.Priority = DMA_PRIORITY_LOW;+ −
hdma_spi1_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;+ −
hdma_spi1_tx.Init.MemBurst = DMA_MBURST_INC4;+ −
hdma_spi1_tx.Init.PeriphBurst = DMA_PBURST_INC4;+ −
HAL_DMA_Init(&hdma_spi1_tx);+ −
+ −
__HAL_LINKDMA(hspi,hdmatx,hdma_spi1_tx);+ −
+ −
hdma_spi1_rx.Instance = DMA2_Stream0;+ −
hdma_spi1_rx.Init.Channel = DMA_CHANNEL_3;+ −
hdma_spi1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;+ −
hdma_spi1_rx.Init.PeriphInc = DMA_PINC_DISABLE;+ −
hdma_spi1_rx.Init.MemInc = DMA_MINC_ENABLE;+ −
hdma_spi1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;+ −
hdma_spi1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;+ −
hdma_spi1_rx.Init.Mode = DMA_NORMAL;+ −
hdma_spi1_rx.Init.Priority = DMA_PRIORITY_HIGH;+ −
hdma_spi1_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;+ −
hdma_spi1_rx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;+ −
+ −
hdma_spi1_rx.Init.MemBurst = DMA_MBURST_INC4;+ −
hdma_spi1_rx.Init.PeriphBurst = DMA_PBURST_INC4;+ −
HAL_DMA_Init(&hdma_spi1_rx);+ −
+ −
__HAL_LINKDMA(hspi, hdmarx, hdma_spi1_rx);+ −
+ −
/*##-4- Configure the NVIC for DMA #########################################*/ + −
/* NVIC configuration for DMA transfer complete interrupt (SPI1_TX) */+ −
HAL_NVIC_SetPriority(DMA2_Stream3_IRQn, 0, 1);+ −
HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn);+ −
+ −
+ −
/* NVIC configuration for DMA transfer complete interrupt (SPI1_RX) */+ −
HAL_NVIC_SetPriority(DMA2_Stream0_IRQn, 0, 0); + −
HAL_NVIC_EnableIRQ(DMA2_Stream0_IRQn);+ −
+ −
}+ −
else if(hspi->Instance==SPI2)+ −
{+ −
/* USER CODE BEGIN SPI2_MspInit 0 */+ −
__GPIOB_CLK_ENABLE();+ −
+ −
/* USER CODE END SPI2_MspInit 0 */+ −
/* Peripheral clock enable */+ −
__SPI2_CLK_ENABLE();+ −
+ −
/**SPI2 GPIO Configuration + −
PB13 ------> SPI2_SCK+ −
PB14 ------> SPI2_MISO+ −
PB15 ------> SPI2_MOSI + −
*/+ −
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;+ −
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);+ −
+ −
/* USER CODE BEGIN SPI2_MspInit 1 */+ −
+ −
/* USER CODE END SPI2_MspInit 1 */+ −
}+ −
else if(hspi->Instance==SPI5)+ −
{+ −
/* USER CODE BEGIN SPI5_MspInit 0 */+ −
__GPIOF_CLK_ENABLE();+ −
+ −
/* USER CODE END SPI5_MspInit 0 */+ −
/* Peripheral clock enable */+ −
__SPI5_CLK_ENABLE();+ −
+ −
/**SPI5 GPIO Configuration + −
PF7 ------> SPI5_SCK+ −
PF8 ------> SPI5_MISO+ −
PF9 ------> SPI5_MOSI + −
*/+ −
GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;//GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;+ −
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);+ −
+ −
/* USER CODE BEGIN SPI5_MspInit 1 */+ −
+ −
/* USER CODE END SPI5_MspInit 1 */+ −
}+ −
+ −
}+ −
+ −
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)+ −
{+ −
+ −
if(hspi->Instance==SPI1)+ −
{+ −
/* USER CODE BEGIN SPI1_MspDeInit 0 */+ −
__SPI1_FORCE_RESET();+ −
__SPI1_RELEASE_RESET();+ −
+ −
/* USER CODE END SPI1_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__SPI1_CLK_DISABLE();+ −
+ −
/**SPI1 GPIO Configuration + −
PA4 ------> SPI1_NSS+ −
PA5 ------> SPI1_SCK+ −
PA6 ------> SPI1_MISO+ −
PA7 ------> SPI1_MOSI + −
*/+ −
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);+ −
+ −
/* Peripheral DMA DeInit*/+ −
HAL_DMA_DeInit(hspi->hdmatx);+ −
HAL_DMA_DeInit(hspi->hdmarx);+ −
/* USER CODE BEGIN SPI1_MspDeInit 1 */+ −
+ −
/* USER CODE END SPI1_MspDeInit 1 */+ −
}+ −
else if(hspi->Instance==SPI2)+ −
{+ −
/* USER CODE BEGIN SPI2_MspDeInit 0 */+ −
+ −
/* USER CODE END SPI2_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__SPI2_CLK_DISABLE();+ −
+ −
/**SPI2 GPIO Configuration + −
PB13 ------> SPI2_SCK+ −
PB14 ------> SPI2_MISO+ −
PB15 ------> SPI2_MOSI + −
*/+ −
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);+ −
+ −
/* USER CODE BEGIN SPI2_MspDeInit 1 */+ −
+ −
/* USER CODE END SPI2_MspDeInit 1 */+ −
}+ −
else if(hspi->Instance==SPI5)+ −
{+ −
/* USER CODE BEGIN SPI5_MspDeInit 0 */+ −
__SPI5_FORCE_RESET();+ −
__SPI5_RELEASE_RESET();+ −
+ −
/* USER CODE END SPI5_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__SPI5_CLK_DISABLE();+ −
+ −
/**SPI5 GPIO Configuration + −
PF7 ------> SPI5_SCK+ −
PF8 ------> SPI5_MISO+ −
PF9 ------> SPI5_MOSI + −
*/+ −
HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9);+ −
+ −
/* USER CODE BEGIN SPI5_MspDeInit 1 */+ −
+ −
/* USER CODE END SPI5_MspDeInit 1 */+ −
}+ −
+ −
}+ −
+ −
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)+ −
{+ −
GPIO_InitTypeDef GPIO_InitStruct;+ −
if(htim_pwm->Instance==TIM_BACKLIGHT)+ −
{+ −
TIM_BACKLIGHT_GPIO_ENABLE();+ −
TIM_BACKLIGHT_CLK_ENABLE();+ −
+ −
GPIO_InitStruct.Pin = TIM_BACKLIGHT_PIN;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;+ −
HAL_GPIO_Init(TIM_BACKLIGHT_GPIO_PORT, &GPIO_InitStruct);+ −
}+ −
+ −
}+ −
+ −
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)+ −
{+ −
if(htim_base->Instance==TIMx)+ −
{+ −
TIMx_CLK_ENABLE();+ −
+ −
HAL_NVIC_SetPriority(TIMx_IRQn, 2, 1);+ −
HAL_NVIC_EnableIRQ(TIMx_IRQn);+ −
+ −
}+ −
}+ −
+ −
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)+ −
{+ −
+ −
if(htim_pwm->Instance==TIM2)+ −
{+ −
/* USER CODE BEGIN TIM2_MspDeInit 0 */+ −
+ −
/* USER CODE END TIM2_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__TIM2_CLK_DISABLE();+ −
+ −
/**TIM2 GPIO Configuration + −
PA15 ------> TIM2_CH1 + −
*/+ −
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);+ −
+ −
/* USER CODE BEGIN TIM2_MspDeInit 1 */+ −
+ −
/* USER CODE END TIM2_MspDeInit 1 */+ −
}+ −
+ −
}+ −
+ −
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)+ −
{+ −
+ −
if(htim_base->Instance==TIM3)+ −
{+ −
/* USER CODE BEGIN TIM3_MspDeInit 0 */+ −
+ −
/* USER CODE END TIM3_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__TIM3_CLK_DISABLE();+ −
+ −
/**TIM3 GPIO Configuration + −
PC7 ------> TIM3_CH2 + −
*/+ −
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_7);+ −
+ −
/* USER CODE BEGIN TIM3_MspDeInit 1 */+ −
+ −
/* USER CODE END TIM3_MspDeInit 1 */+ −
}+ −
+ −
}+ −
+ −
void HAL_UART_MspInit(UART_HandleTypeDef* huart)+ −
{+ −
+ −
GPIO_InitTypeDef GPIO_InitStruct;+ −
if(huart->Instance==USART1)+ −
{+ −
/* USER CODE BEGIN USART1_MspInit 0 */+ −
__GPIOA_CLK_ENABLE();+ −
+ −
/* USER CODE END USART1_MspInit 0 */+ −
/* Peripheral clock enable */+ −
__USART1_CLK_ENABLE();+ −
+ −
/**USART1 GPIO Configuration + −
PA9 ------> USART1_TX+ −
PA10 ------> USART1_RX + −
*/+ −
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_PULLUP;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;//GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;+ −
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);+ −
+ −
HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);+ −
HAL_NVIC_EnableIRQ(USART1_IRQn);+ −
}+ −
else if(huart->Instance==USART_IR_HUD) /* USART2 */+ −
{+ −
USART_IR_HUD_CLK_ENABLE();+ −
USART_IR_HUD_TX_GPIO_CLK_ENABLE();+ −
USART_IR_HUD_RX_GPIO_CLK_ENABLE();+ −
+ −
/**USART2 GPIO Configuration + −
PD5 ------> USART2_TX+ −
PD6 ------> USART2_RX + −
*/+ −
+ −
GPIO_InitStruct.Pin = USART_IR_HUD_TX_PIN;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_PULLUP;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = USART_IR_HUD_TX_AF;+ −
HAL_GPIO_Init(USART_IR_HUD_TX_GPIO_PORT, &GPIO_InitStruct);+ −
+ −
GPIO_InitStruct.Pin = USART_IR_HUD_RX_PIN;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_PULLUP;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = USART_IR_HUD_RX_AF;+ −
HAL_GPIO_Init(USART_IR_HUD_RX_GPIO_PORT, &GPIO_InitStruct);+ −
+ −
HAL_NVIC_SetPriority(USART_IR_HUD_IRQn, 0, 1);+ −
HAL_NVIC_EnableIRQ(USART_IR_HUD_IRQn);+ −
}+ −
else if(huart->Instance==USART3)+ −
{+ −
/* USER CODE BEGIN USART3_MspInit 0 */+ −
+ −
/* USER CODE END USART3_MspInit 0 */+ −
/* Peripheral clock enable */+ −
__USART3_CLK_ENABLE();+ −
+ −
/**USART3 GPIO Configuration + −
PC10 ------> USART3_TX+ −
PC11 ------> USART3_RX + −
*/+ −
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_PULLUP;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;+ −
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;+ −
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);+ −
+ −
/* USER CODE BEGIN USART3_MspInit 1 */+ −
+ −
/* USER CODE END USART3_MspInit 1 */+ −
}+ −
+ −
}+ −
+ −
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)+ −
{+ −
+ −
if(huart->Instance==USART1)+ −
{+ −
/* USER CODE BEGIN USART1_MspDeInit 0 */+ −
+ −
/* USER CODE END USART1_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__USART1_CLK_DISABLE();+ −
+ −
/**USART1 GPIO Configuration + −
PA9 ------> USART1_TX+ −
PA10 ------> USART1_RX + −
*/+ −
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);+ −
+ −
/* USER CODE BEGIN USART1_MspDeInit 1 */+ −
+ −
/* USER CODE END USART1_MspDeInit 1 */+ −
}+ −
else if(huart->Instance==USART2)+ −
{+ −
/* USER CODE BEGIN USART2_MspDeInit 0 */+ −
+ −
/* USER CODE END USART2_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__USART2_CLK_DISABLE();+ −
+ −
/**USART2 GPIO Configuration + −
PD5 ------> USART2_TX+ −
PD6 ------> USART2_RX + −
*/+ −
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5|GPIO_PIN_6);+ −
+ −
/* USER CODE BEGIN USART2_MspDeInit 1 */+ −
+ −
/* USER CODE END USART2_MspDeInit 1 */+ −
}+ −
else if(huart->Instance==USART3)+ −
{+ −
/* USER CODE BEGIN USART3_MspDeInit 0 */+ −
+ −
/* USER CODE END USART3_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__USART3_CLK_DISABLE();+ −
+ −
/**USART3 GPIO Configuration + −
PC10 ------> USART3_TX+ −
PC11 ------> USART3_RX + −
*/+ −
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11);+ −
+ −
/* USER CODE BEGIN USART3_MspDeInit 1 */+ −
+ −
/* USER CODE END USART3_MspDeInit 1 */+ −
}+ −
+ −
}+ −
+ −
static int FMC_Initialized = 0;+ −
+ −
static void HAL_FMC_MspInit(void){+ −
GPIO_InitTypeDef GPIO_InitStruct;+ −
if (FMC_Initialized) {+ −
return;+ −
}+ −
FMC_Initialized = 1;+ −
/* Peripheral clock enable */+ −
__GPIOC_CLK_ENABLE();+ −
__GPIOD_CLK_ENABLE();+ −
__GPIOE_CLK_ENABLE();+ −
__GPIOF_CLK_ENABLE();+ −
__GPIOG_CLK_ENABLE();+ −
__GPIOH_CLK_ENABLE();+ −
+ −
__FMC_CLK_ENABLE();+ −
+ −
/** FMC GPIO Configuration + −
PF0 ------> FMC_A0+ −
PF1 ------> FMC_A1+ −
PF2 ------> FMC_A2+ −
PF3 ------> FMC_A3+ −
PF4 ------> FMC_A4+ −
PF5 ------> FMC_A5+ −
PC0 ------> FMC_SDNWE+ −
PF11 ------> FMC_SDNRAS+ −
PF12 ------> FMC_A6+ −
PF13 ------> FMC_A7+ −
PF14 ------> FMC_A8+ −
PF15 ------> FMC_A9+ −
PG0 ------> FMC_A10+ −
PG1 ------> FMC_A11+ −
PE7 ------> FMC_D4+ −
PE8 ------> FMC_D5+ −
PE9 ------> FMC_D6+ −
PE10 ------> FMC_D7+ −
PE11 ------> FMC_D8+ −
PE12 ------> FMC_D9+ −
PE13 ------> FMC_D10+ −
PE14 ------> FMC_D11+ −
PE15 ------> FMC_D12+ −
PH6 ------> FMC_SDNE1 neu+ −
PH7 ------> FMC_SDCKE1 neu + −
PD8 ------> FMC_D13+ −
PD9 ------> FMC_D14+ −
PD10 ------> FMC_D15+ −
PD14 ------> FMC_D0+ −
PD15 ------> FMC_D1+ −
PG2 ------> FMC_A12+ −
PG4 ------> FMC_BA0+ −
PG5 ------> FMC_BA1+ −
PG8 ------> FMC_SDCLK+ −
PD0 ------> FMC_D2+ −
PD1 ------> FMC_D3+ −
PG15 ------> FMC_SDNCAS+ −
PE0 ------> FMC_NBL0+ −
PE1 ------> FMC_NBL1+ −
*/+ −
+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;+ −
GPIO_InitStruct.Alternate = GPIO_AF12_FMC;+ −
+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_0;+ −
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14 + −
|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;+ −
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 + −
|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 + −
|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;+ −
HAL_GPIO_Init(GPIOE, &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_11|GPIO_PIN_12 + −
|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;+ −
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4 + −
|GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15;+ −
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;+ −
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);+ −
+ −
+ −
}+ −
+ −
void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){+ −
HAL_FMC_MspInit();+ −
}+ −
+ −
static int FMC_DeInitialized = 0;+ −
+ −
static void HAL_FMC_MspDeInit(void){+ −
if (FMC_DeInitialized) {+ −
return;+ −
}+ −
FMC_DeInitialized = 1;+ −
/* Peripheral clock enable */+ −
__FMC_CLK_DISABLE();+ −
+ −
/** FMC GPIO Configuration + −
PF0 ------> FMC_A0+ −
PF1 ------> FMC_A1+ −
PF2 ------> FMC_A2+ −
PF3 ------> FMC_A3+ −
PF4 ------> FMC_A4+ −
PF5 ------> FMC_A5+ −
PC0 ------> FMC_SDNWE+ −
PF11 ------> FMC_SDNRAS+ −
PF12 ------> FMC_A6+ −
PF13 ------> FMC_A7+ −
PF14 ------> FMC_A8+ −
PF15 ------> FMC_A9+ −
PG0 ------> FMC_A10+ −
PG1 ------> FMC_A11+ −
PE7 ------> FMC_D4+ −
PE8 ------> FMC_D5+ −
PE9 ------> FMC_D6+ −
PE10 ------> FMC_D7+ −
PE11 ------> FMC_D8+ −
PE12 ------> FMC_D9+ −
PE13 ------> FMC_D10+ −
PE14 ------> FMC_D11+ −
PE15 ------> FMC_D12+ −
PH6 ------> FMC_SDNE1+ −
PH7 ------> FMC_SDCKE1+ −
PD8 ------> FMC_D13+ −
PD9 ------> FMC_D14+ −
PD10 ------> FMC_D15+ −
PD14 ------> FMC_D0+ −
PD15 ------> FMC_D1+ −
PG2 ------> FMC_A12+ −
PG4 ------> FMC_BA0+ −
PG5 ------> FMC_BA1+ −
PG8 ------> FMC_SDCLK+ −
PD0 ------> FMC_D2+ −
PD1 ------> FMC_D3+ −
PG15 ------> FMC_SDNCAS+ −
PE0 ------> FMC_NBL0+ −
PE1 ------> FMC_NBL1+ −
*/+ −
HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 + −
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12 + −
|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);+ −
+ −
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);+ −
+ −
HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4 + −
|GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15);+ −
+ −
HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 + −
|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 + −
|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);+ −
+ −
HAL_GPIO_DeInit(GPIOH, GPIO_PIN_6|GPIO_PIN_7);+ −
+ −
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14 + −
|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);+ −
+ −
}+ −
+ −
void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){+ −
HAL_FMC_MspDeInit();+ −
}+ −
+ −
/* USER CODE BEGIN 1 */+ −
+ −
/* USER CODE END 1 */+ −
+ −
/**+ −
* @}+ −
*/+ −
+ −
/**+ −
* @}+ −
*/+ −
+ −
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/+ −