Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-rtos mbed ros_lib_indigo
Diff: stm32f7xx_hal_msp.c
- Revision:
- 0:4d2d2219c8e4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/stm32f7xx_hal_msp.c Mon Jan 30 09:21:03 2017 +0000
@@ -0,0 +1,340 @@
+/**
+ ******************************************************************************
+ * File Name : stm32f7xx_hal_msp.c
+ * Description : This file provides code for the MSP Initialization
+ * and de-Initialization codes.
+ ******************************************************************************
+ *
+ * COPYRIGHT(c) 2017 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 "stm32f7xx_hal.h"
+
+extern DMA_HandleTypeDef hdma_adc2;
+
+extern void Error_Handler(void);
+/* 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_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);
+
+ /* USER CODE BEGIN MspInit 1 */
+
+ /* USER CODE END MspInit 1 */
+}
+
+void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
+{
+
+ GPIO_InitTypeDef GPIO_InitStruct;
+ if(hadc->Instance==ADC2)
+ {
+ /* USER CODE BEGIN ADC2_MspInit 0 */
+
+ /* USER CODE END ADC2_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_ADC2_CLK_ENABLE();
+
+ /**ADC2 GPIO Configuration
+ PA5 ------> ADC2_IN5
+ PA6 ------> ADC2_IN6
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /* Peripheral DMA init*/
+
+ hdma_adc2.Instance = DMA2_Stream2;
+ hdma_adc2.Init.Channel = DMA_CHANNEL_1;
+ hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY;
+ hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE;
+ hdma_adc2.Init.MemInc = DMA_MINC_ENABLE;
+ hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ hdma_adc2.Init.Mode = DMA_CIRCULAR;
+ hdma_adc2.Init.Priority = DMA_PRIORITY_LOW;
+ hdma_adc2.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
+ if (HAL_DMA_Init(&hdma_adc2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc2);
+
+ /* USER CODE BEGIN ADC2_MspInit 1 */
+
+ /* USER CODE END ADC2_MspInit 1 */
+ }
+
+}
+
+void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
+{
+
+ if(hadc->Instance==ADC2)
+ {
+ /* USER CODE BEGIN ADC2_MspDeInit 0 */
+
+ /* USER CODE END ADC2_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_ADC2_CLK_DISABLE();
+
+ /**ADC2 GPIO Configuration
+ PA5 ------> ADC2_IN5
+ PA6 ------> ADC2_IN6
+ */
+ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6);
+
+ /* Peripheral DMA DeInit*/
+ HAL_DMA_DeInit(hadc->DMA_Handle);
+ }
+ /* USER CODE BEGIN ADC2_MspDeInit 1 */
+
+ /* USER CODE END ADC2_MspDeInit 1 */
+
+}
+
+void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
+{
+
+ GPIO_InitTypeDef GPIO_InitStruct;
+ if(htim_encoder->Instance==TIM1)
+ {
+ /* USER CODE BEGIN TIM1_MspInit 0 */
+
+ /* USER CODE END TIM1_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_TIM1_CLK_ENABLE();
+
+ /**TIM1 GPIO Configuration
+ PE9 ------> TIM1_CH1
+ PE11 ------> TIM1_CH2
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_9;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ GPIO_InitStruct.Pin = GPIO_PIN_11;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN TIM1_MspInit 1 */
+
+ /* USER CODE END TIM1_MspInit 1 */
+ }
+ else if(htim_encoder->Instance==TIM4)
+ {
+ /* USER CODE BEGIN TIM4_MspInit 0 */
+
+ /* USER CODE END TIM4_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_TIM4_CLK_ENABLE();
+
+ /**TIM4 GPIO Configuration
+ PD12 ------> TIM4_CH1
+ PD13 ------> TIM4_CH2
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_12;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ GPIO_InitStruct.Pin = GPIO_PIN_13;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ 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_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
+{
+
+ if(htim_pwm->Instance==TIM9)
+ {
+ /* USER CODE BEGIN TIM9_MspInit 0 */
+
+ /* USER CODE END TIM9_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_TIM9_CLK_ENABLE();
+ /* USER CODE BEGIN TIM9_MspInit 1 */
+
+ /* USER CODE END TIM9_MspInit 1 */
+ }
+
+}
+
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
+{
+
+ GPIO_InitTypeDef GPIO_InitStruct;
+ if(htim->Instance==TIM9)
+ {
+ /* USER CODE BEGIN TIM9_MspPostInit 0 */
+
+ /* USER CODE END TIM9_MspPostInit 0 */
+
+ /**TIM9 GPIO Configuration
+ PE5 ------> TIM9_CH1
+ PE6 ------> TIM9_CH2
+ */
+ GPIO_InitStruct.Pin = 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_AF3_TIM9;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN TIM9_MspPostInit 1 */
+
+ /* USER CODE END TIM9_MspPostInit 1 */
+ }
+
+}
+
+void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder)
+{
+
+ if(htim_encoder->Instance==TIM1)
+ {
+ /* USER CODE BEGIN TIM1_MspDeInit 0 */
+
+ /* USER CODE END TIM1_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM1_CLK_DISABLE();
+
+ /**TIM1 GPIO Configuration
+ PE9 ------> TIM1_CH1
+ PE11 ------> TIM1_CH2
+ */
+ HAL_GPIO_DeInit(GPIOE, GPIO_PIN_9|GPIO_PIN_11);
+
+ /* USER CODE BEGIN TIM1_MspDeInit 1 */
+
+ /* USER CODE END TIM1_MspDeInit 1 */
+ }
+ else if(htim_encoder->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 */
+ }
+
+}
+
+void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
+{
+
+ if(htim_pwm->Instance==TIM9)
+ {
+ /* USER CODE BEGIN TIM9_MspDeInit 0 */
+
+ /* USER CODE END TIM9_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM9_CLK_DISABLE();
+ }
+ /* USER CODE BEGIN TIM9_MspDeInit 1 */
+
+ /* USER CODE END TIM9_MspDeInit 1 */
+
+}
+
+/* USER CODE BEGIN 1 */
+void Error_Handler(void)
+{
+ /* USER CODE BEGIN Error_Handler */
+ /* User can add his own implementation to report the HAL error return state */
+ while(1)
+ {
+ }
+ /* USER CODE END Error_Handler */
+}
+/* USER CODE END 1 */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+