view Small_CPU/Src/stm32f4xx_hal_msp_v3.c @ 967:9b418e63dbc2
Evo_2_23
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)
author
heinrichsweikamp
date
Wed, 15 Jan 2025 16:38:27 +0100 (4 weeks ago)
parents
f72613a152dd
children
line source
/**+ −
******************************************************************************+ −
* @file UART/UART_Printf/Src/stm32f4xx_hal_msp.c+ −
* @author MCD Application Team+ −
* @version V1.1.0+ −
* @date 26-June-2014+ −
* @brief HAL MSP module. + −
******************************************************************************+ −
* @attention+ −
*+ −
* <h2><center>© COPYRIGHT(c) 2014 STMicroelectronics</center></h2>+ −
*+ −
* 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 "baseCPU2.h"+ −
+ −
#include "stm32f4xx_hal.h"+ −
+ −
/** @addtogroup STM32F4xx_HAL_Examples+ −
* @{+ −
*/+ −
+ −
/** @defgroup HAL_MSP+ −
* @brief HAL MSP module.+ −
* @{+ −
*/+ −
+ −
/* Private typedef -----------------------------------------------------------*/+ −
/* Private define ------------------------------------------------------------*/+ −
/* Private macro -------------------------------------------------------------*/+ −
/* Private variables ---------------------------------------------------------*/+ −
/* Private function prototypes -----------------------------------------------*/+ −
/* Private functions ---------------------------------------------------------*/+ −
+ −
/** @defgroup HAL_MSP_Private_Functions+ −
* @{+ −
*/+ −
+ −
void HAL_I2C_ManualControl_MspInit(void)+ −
{ + −
GPIO_InitTypeDef GPIO_InitStruct;+ −
+ −
/*##-1- Enable peripherals and GPIO Clocks #################################*/+ −
/* Enable GPIO TX/RX clock */+ −
I2Cx_SCL_GPIO_CLK_ENABLE();+ −
I2Cx_SDA_GPIO_CLK_ENABLE();+ −
+ −
/*##-2- Configure peripheral GPIO ##########################################*/ + −
/* I2C CLOCK GPIO pin configuration */+ −
GPIO_InitStruct.Pin = I2Cx_SCL_PIN;+ −
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;+ −
GPIO_InitStruct.Pull = GPIO_PULLUP;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;+ −
+ −
HAL_GPIO_Init(I2Cx_SCL_GPIO_PORT, &GPIO_InitStruct);+ −
+ −
/* I2C DATA GPIO pin configuration */+ −
GPIO_InitStruct.Pin = I2Cx_SDA_PIN;+ −
GPIO_InitStruct.Alternate = GPIO_MODE_INPUT;+ −
+ −
HAL_GPIO_Init(I2Cx_SDA_GPIO_PORT, &GPIO_InitStruct);+ −
}+ −
+ −
/**+ −
* @brief I2C MSP Initialization + −
* This function configures the hardware resources used in this example: + −
* - Peripheral's clock enable+ −
* - Peripheral's GPIO Configuration + −
* - DMA configuration for transmission request by peripheral + −
* - NVIC configuration for DMA interrupt request enable+ −
* @param hi2c: I2C handle pointer+ −
* @retval None+ −
*/+ −
void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)+ −
{ + −
GPIO_InitTypeDef GPIO_InitStruct;+ −
+ −
/*##-1- Enable peripherals and GPIO Clocks #################################*/+ −
/* Enable GPIO TX/RX clock */+ −
I2Cx_SCL_GPIO_CLK_ENABLE();+ −
I2Cx_SDA_GPIO_CLK_ENABLE();+ −
/* Enable I2C1 clock */+ −
I2Cx_CLK_ENABLE(); + −
+ −
/*##-2- Configure peripheral GPIO ##########################################*/ + −
/* I2C TX GPIO pin configuration */+ −
GPIO_InitStruct.Pin = I2Cx_SCL_PIN;+ −
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;+ −
GPIO_InitStruct.Pull = GPIO_NOPULL;+ −
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;+ −
GPIO_InitStruct.Alternate = I2Cx_SCL_AF;+ −
+ −
HAL_GPIO_Init(I2Cx_SCL_GPIO_PORT, &GPIO_InitStruct);+ −
+ −
/* I2C RX GPIO pin configuration */+ −
GPIO_InitStruct.Pin = I2Cx_SDA_PIN;+ −
GPIO_InitStruct.Alternate = I2Cx_SDA_AF;+ −
+ −
HAL_GPIO_Init(I2Cx_SDA_GPIO_PORT, &GPIO_InitStruct);+ −
+ −
/*##-3- Configure the NVIC for I2C #########################################*/ + −
/* NVIC for I2C1 */+ −
+ −
/* The callbacks are not used => no need to activate the interrupts */+ −
/*+ −
HAL_NVIC_SetPriority(I2Cx_ER_IRQn, 1, 2);+ −
HAL_NVIC_EnableIRQ(I2Cx_ER_IRQn);+ −
HAL_NVIC_SetPriority(I2Cx_EV_IRQn, 1, 3);+ −
HAL_NVIC_EnableIRQ(I2Cx_EV_IRQn);+ −
*/+ −
}+ −
+ −
/**+ −
* @brief I2C MSP De-Initialization + −
* This function frees the hardware resources used in this example:+ −
* - Disable the Peripheral's clock+ −
* - Revert GPIO, DMA and NVIC configuration to their default state+ −
* @param hi2c: I2C handle pointer+ −
* @retval None+ −
*/+ −
void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)+ −
{+ −
/*##-1- Reset peripherals ##################################################*/+ −
I2Cx_FORCE_RESET();+ −
I2Cx_RELEASE_RESET();+ −
+ −
/*##-2- Disable peripherals and GPIO Clocks ################################*/+ −
/* Configure I2C Tx as alternate function */+ −
HAL_GPIO_DeInit(I2Cx_SCL_GPIO_PORT, I2Cx_SCL_PIN);+ −
/* Configure I2C Rx as alternate function */+ −
HAL_GPIO_DeInit(I2Cx_SDA_GPIO_PORT, I2Cx_SDA_PIN);+ −
+ −
/*##-3- Disable the NVIC for I2C ###########################################*/+ −
HAL_NVIC_DisableIRQ(I2Cx_ER_IRQn);+ −
HAL_NVIC_DisableIRQ(I2Cx_EV_IRQn);+ −
}+ −
+ −
+ −
/**+ −
* @brief RTC MSP Initialization + −
* This function configures the hardware resources used in this example+ −
* @param hrtc: RTC handle pointer+ −
* + −
* @note Care must be taken when HAL_RCCEx_PeriphCLKConfig() is used to select + −
* the RTC clock source; in this case the Backup domain will be reset in + −
* order to modify the RTC Clock source, as consequence RTC registers (including + −
* the backup registers) and RCC_BDCR register are set to their reset values.+ −
* + −
* @retval None+ −
*/+ −
void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)+ −
{+ −
+ −
if(hrtc->Instance==RTC)+ −
{+ −
/* USER CODE BEGIN RTC_MspInit 0 */+ −
RCC_OscInitTypeDef RCC_OscInitStruct;+ −
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;+ −
+ −
/*##-1- Configue LSI as RTC clock soucre ###################################*/ + −
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;+ −
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;+ −
RCC_OscInitStruct.LSEState = RCC_LSE_ON;+ −
HAL_RCC_OscConfig(&RCC_OscInitStruct);+ −
+ −
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;+ −
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;+ −
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);+ −
+ −
/* USER CODE END RTC_MspInit 0 */+ −
/* Peripheral clock enable */+ −
__HAL_RCC_RTC_ENABLE();+ −
/* USER CODE BEGIN RTC_MspInit 1 */+ −
+ −
/*##-3- Configure the NVIC for RTC WakeUp Timer ############################*/+ −
HAL_NVIC_SetPriority(RTC_WKUP_IRQn, 0x0F, 0);+ −
HAL_NVIC_EnableIRQ(RTC_WKUP_IRQn);+ −
+ −
/* USER CODE END RTC_MspInit 1 */+ −
}+ −
+ −
}+ −
+ −
+ −
void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)+ −
{+ −
+ −
if(hrtc->Instance==RTC)+ −
{+ −
/* USER CODE BEGIN RTC_MspDeInit 0 */+ −
+ −
/* USER CODE END RTC_MspDeInit 0 */+ −
/* Peripheral clock disable */+ −
__HAL_RCC_RTC_DISABLE();+ −
/* USER CODE BEGIN RTC_MspDeInit 1 */+ −
+ −
/* USER CODE END RTC_MspDeInit 1 */+ −
}+ −
+ −
}+ −
+ −
+ −
+ −
void HAL_UART_MspInit(UART_HandleTypeDef* huart)+ −
{+ −
+ −
GPIO_InitTypeDef GPIO_InitStruct;+ −
if(huart->Instance==USART1)+ −
{+ −
__GPIOA_CLK_ENABLE();+ −
__USART1_CLK_ENABLE();+ −
GPIO_InitStruct.Pin = GPIO_PIN_9;+ −
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);+ −
+ −
GPIO_InitStruct.Pin = GPIO_PIN_10;+ −
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);+ −
+ −
HAL_NVIC_SetPriority(USART1_IRQn, 1, 3);+ −
HAL_NVIC_EnableIRQ(USART1_IRQn);+ −
}+ −
}+ −
+ −
+ −
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)+ −
{+ −
if(huart->Instance==USART1)+ −
{+ −
HAL_NVIC_DisableIRQ(USART1_IRQn);+ −
__USART1_CLK_DISABLE();+ −
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);+ −
}+ −
}+ −
+ −
+ −
+ −
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/+ −