Initial commit

Dependencies:   FastPWM

Committer:
lypinator
Date:
Wed Sep 16 01:11:49 2020 +0000
Revision:
0:bb348c97df44
Added PWM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lypinator 0:bb348c97df44 1 /**
lypinator 0:bb348c97df44 2 ******************************************************************************
lypinator 0:bb348c97df44 3 * @file stm32f4xx_hal_tim_ex.h
lypinator 0:bb348c97df44 4 * @author MCD Application Team
lypinator 0:bb348c97df44 5 * @brief Header file of TIM HAL Extension module.
lypinator 0:bb348c97df44 6 ******************************************************************************
lypinator 0:bb348c97df44 7 * @attention
lypinator 0:bb348c97df44 8 *
lypinator 0:bb348c97df44 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
lypinator 0:bb348c97df44 10 *
lypinator 0:bb348c97df44 11 * Redistribution and use in source and binary forms, with or without modification,
lypinator 0:bb348c97df44 12 * are permitted provided that the following conditions are met:
lypinator 0:bb348c97df44 13 * 1. Redistributions of source code must retain the above copyright notice,
lypinator 0:bb348c97df44 14 * this list of conditions and the following disclaimer.
lypinator 0:bb348c97df44 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
lypinator 0:bb348c97df44 16 * this list of conditions and the following disclaimer in the documentation
lypinator 0:bb348c97df44 17 * and/or other materials provided with the distribution.
lypinator 0:bb348c97df44 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
lypinator 0:bb348c97df44 19 * may be used to endorse or promote products derived from this software
lypinator 0:bb348c97df44 20 * without specific prior written permission.
lypinator 0:bb348c97df44 21 *
lypinator 0:bb348c97df44 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
lypinator 0:bb348c97df44 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
lypinator 0:bb348c97df44 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
lypinator 0:bb348c97df44 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
lypinator 0:bb348c97df44 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
lypinator 0:bb348c97df44 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
lypinator 0:bb348c97df44 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
lypinator 0:bb348c97df44 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
lypinator 0:bb348c97df44 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
lypinator 0:bb348c97df44 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
lypinator 0:bb348c97df44 32 *
lypinator 0:bb348c97df44 33 ******************************************************************************
lypinator 0:bb348c97df44 34 */
lypinator 0:bb348c97df44 35
lypinator 0:bb348c97df44 36 /* Define to prevent recursive inclusion -------------------------------------*/
lypinator 0:bb348c97df44 37 #ifndef __STM32F4xx_HAL_TIM_EX_H
lypinator 0:bb348c97df44 38 #define __STM32F4xx_HAL_TIM_EX_H
lypinator 0:bb348c97df44 39
lypinator 0:bb348c97df44 40 #ifdef __cplusplus
lypinator 0:bb348c97df44 41 extern "C" {
lypinator 0:bb348c97df44 42 #endif
lypinator 0:bb348c97df44 43
lypinator 0:bb348c97df44 44 /* Includes ------------------------------------------------------------------*/
lypinator 0:bb348c97df44 45 #include "stm32f4xx_hal_def.h"
lypinator 0:bb348c97df44 46
lypinator 0:bb348c97df44 47 /** @addtogroup STM32F4xx_HAL_Driver
lypinator 0:bb348c97df44 48 * @{
lypinator 0:bb348c97df44 49 */
lypinator 0:bb348c97df44 50
lypinator 0:bb348c97df44 51 /** @addtogroup TIMEx
lypinator 0:bb348c97df44 52 * @{
lypinator 0:bb348c97df44 53 */
lypinator 0:bb348c97df44 54
lypinator 0:bb348c97df44 55 /* Exported types ------------------------------------------------------------*/
lypinator 0:bb348c97df44 56 /** @defgroup TIMEx_Exported_Types TIM Exported Types
lypinator 0:bb348c97df44 57 * @{
lypinator 0:bb348c97df44 58 */
lypinator 0:bb348c97df44 59
lypinator 0:bb348c97df44 60 /**
lypinator 0:bb348c97df44 61 * @brief TIM Hall sensor Configuration Structure definition
lypinator 0:bb348c97df44 62 */
lypinator 0:bb348c97df44 63
lypinator 0:bb348c97df44 64 typedef struct
lypinator 0:bb348c97df44 65 {
lypinator 0:bb348c97df44 66
lypinator 0:bb348c97df44 67 uint32_t IC1Polarity; /*!< Specifies the active edge of the input signal.
lypinator 0:bb348c97df44 68 This parameter can be a value of @ref TIM_Input_Capture_Polarity */
lypinator 0:bb348c97df44 69
lypinator 0:bb348c97df44 70 uint32_t IC1Prescaler; /*!< Specifies the Input Capture Prescaler.
lypinator 0:bb348c97df44 71 This parameter can be a value of @ref TIM_Input_Capture_Prescaler */
lypinator 0:bb348c97df44 72
lypinator 0:bb348c97df44 73 uint32_t IC1Filter; /*!< Specifies the input capture filter.
lypinator 0:bb348c97df44 74 This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
lypinator 0:bb348c97df44 75
lypinator 0:bb348c97df44 76 uint32_t Commutation_Delay; /*!< Specifies the pulse value to be loaded into the Capture Compare Register.
lypinator 0:bb348c97df44 77 This parameter can be a number between Min_Data = 0x0000U and Max_Data = 0xFFFFU */
lypinator 0:bb348c97df44 78 } TIM_HallSensor_InitTypeDef;
lypinator 0:bb348c97df44 79
lypinator 0:bb348c97df44 80 /**
lypinator 0:bb348c97df44 81 * @brief TIM Master configuration Structure definition
lypinator 0:bb348c97df44 82 */
lypinator 0:bb348c97df44 83 typedef struct {
lypinator 0:bb348c97df44 84 uint32_t MasterOutputTrigger; /*!< Trigger output (TRGO) selection.
lypinator 0:bb348c97df44 85 This parameter can be a value of @ref TIM_Master_Mode_Selection */
lypinator 0:bb348c97df44 86
lypinator 0:bb348c97df44 87 uint32_t MasterSlaveMode; /*!< Master/slave mode selection.
lypinator 0:bb348c97df44 88 This parameter can be a value of @ref TIM_Master_Slave_Mode */
lypinator 0:bb348c97df44 89 }TIM_MasterConfigTypeDef;
lypinator 0:bb348c97df44 90
lypinator 0:bb348c97df44 91 /**
lypinator 0:bb348c97df44 92 * @brief TIM Break and Dead time configuration Structure definition
lypinator 0:bb348c97df44 93 */
lypinator 0:bb348c97df44 94 typedef struct
lypinator 0:bb348c97df44 95 {
lypinator 0:bb348c97df44 96 uint32_t OffStateRunMode; /*!< TIM off state in run mode.
lypinator 0:bb348c97df44 97 This parameter can be a value of @ref TIM_OSSR_Off_State_Selection_for_Run_mode_state */
lypinator 0:bb348c97df44 98 uint32_t OffStateIDLEMode; /*!< TIM off state in IDLE mode.
lypinator 0:bb348c97df44 99 This parameter can be a value of @ref TIM_OSSI_Off_State_Selection_for_Idle_mode_state */
lypinator 0:bb348c97df44 100 uint32_t LockLevel; /*!< TIM Lock level.
lypinator 0:bb348c97df44 101 This parameter can be a value of @ref TIM_Lock_level */
lypinator 0:bb348c97df44 102 uint32_t DeadTime; /*!< TIM dead Time.
lypinator 0:bb348c97df44 103 This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF */
lypinator 0:bb348c97df44 104 uint32_t BreakState; /*!< TIM Break State.
lypinator 0:bb348c97df44 105 This parameter can be a value of @ref TIM_Break_Input_enable_disable */
lypinator 0:bb348c97df44 106 uint32_t BreakPolarity; /*!< TIM Break input polarity.
lypinator 0:bb348c97df44 107 This parameter can be a value of @ref TIM_Break_Polarity */
lypinator 0:bb348c97df44 108 uint32_t AutomaticOutput; /*!< TIM Automatic Output Enable state.
lypinator 0:bb348c97df44 109 This parameter can be a value of @ref TIM_AOE_Bit_Set_Reset */
lypinator 0:bb348c97df44 110 }TIM_BreakDeadTimeConfigTypeDef;
lypinator 0:bb348c97df44 111 /**
lypinator 0:bb348c97df44 112 * @}
lypinator 0:bb348c97df44 113 */
lypinator 0:bb348c97df44 114
lypinator 0:bb348c97df44 115 /* Exported constants --------------------------------------------------------*/
lypinator 0:bb348c97df44 116 /** @defgroup TIMEx_Exported_Constants TIM Exported Constants
lypinator 0:bb348c97df44 117 * @{
lypinator 0:bb348c97df44 118 */
lypinator 0:bb348c97df44 119
lypinator 0:bb348c97df44 120 /** @defgroup TIMEx_Remap TIM Remap
lypinator 0:bb348c97df44 121 * @{
lypinator 0:bb348c97df44 122 */
lypinator 0:bb348c97df44 123 #define TIM_TIM2_TIM8_TRGO 0x00000000U
lypinator 0:bb348c97df44 124 #define TIM_TIM2_ETH_PTP 0x00000400U
lypinator 0:bb348c97df44 125 #define TIM_TIM2_USBFS_SOF 0x00000800U
lypinator 0:bb348c97df44 126 #define TIM_TIM2_USBHS_SOF 0x00000C00U
lypinator 0:bb348c97df44 127 #define TIM_TIM5_GPIO 0x00000000U
lypinator 0:bb348c97df44 128 #define TIM_TIM5_LSI 0x00000040U
lypinator 0:bb348c97df44 129 #define TIM_TIM5_LSE 0x00000080U
lypinator 0:bb348c97df44 130 #define TIM_TIM5_RTC 0x000000C0U
lypinator 0:bb348c97df44 131 #define TIM_TIM11_GPIO 0x00000000U
lypinator 0:bb348c97df44 132 #define TIM_TIM11_HSE 0x00000002U
lypinator 0:bb348c97df44 133
lypinator 0:bb348c97df44 134 #if defined(STM32F413xx) || defined(STM32F423xx)
lypinator 0:bb348c97df44 135 #define TIM_TIM9_TIM3_TRGO 0x10000000U
lypinator 0:bb348c97df44 136 #define TIM_TIM9_LPTIM 0x10000010U
lypinator 0:bb348c97df44 137 #define TIM_TIM5_TIM3_TRGO 0x10000000U
lypinator 0:bb348c97df44 138 #define TIM_TIM5_LPTIM 0x10000008U
lypinator 0:bb348c97df44 139 #define TIM_TIM1_TIM3_TRGO 0x10000000U
lypinator 0:bb348c97df44 140 #define TIM_TIM1_LPTIM 0x10000004U
lypinator 0:bb348c97df44 141 #endif /* STM32F413xx | STM32F423xx */
lypinator 0:bb348c97df44 142
lypinator 0:bb348c97df44 143 #if defined (STM32F446xx)
lypinator 0:bb348c97df44 144 #define TIM_TIM11_SPDIFRX 0x00000001U
lypinator 0:bb348c97df44 145 #endif /* STM32F446xx */
lypinator 0:bb348c97df44 146 /**
lypinator 0:bb348c97df44 147 * @}
lypinator 0:bb348c97df44 148 */
lypinator 0:bb348c97df44 149
lypinator 0:bb348c97df44 150 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F413xx) || defined(STM32F423xx)
lypinator 0:bb348c97df44 151 /** @defgroup TIMEx_SystemBreakInput TIM System Break Input
lypinator 0:bb348c97df44 152 * @{
lypinator 0:bb348c97df44 153 */
lypinator 0:bb348c97df44 154 #define TIM_SYSTEMBREAKINPUT_HARDFAULT 0x00000001U /* Core Lockup lock output(Hardfault) is connected to Break Input of TIM1 and TIM8 */
lypinator 0:bb348c97df44 155 #define TIM_SYSTEMBREAKINPUT_PVD 0x00000004U /* PVD Interrupt is connected to Break Input of TIM1 and TIM8 */
lypinator 0:bb348c97df44 156 #define TIM_SYSTEMBREAKINPUT_HARDFAULT_PVD 0x00000005U /* Core Lockup lock output(Hardfault) and PVD Interrupt are connected to Break Input of TIM1 and TIM8 */
lypinator 0:bb348c97df44 157 /**
lypinator 0:bb348c97df44 158 * @}
lypinator 0:bb348c97df44 159 */
lypinator 0:bb348c97df44 160 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx || STM32F413xx || STM32F423xx */
lypinator 0:bb348c97df44 161
lypinator 0:bb348c97df44 162 /**
lypinator 0:bb348c97df44 163 * @}
lypinator 0:bb348c97df44 164 */
lypinator 0:bb348c97df44 165 /* Exported macro ------------------------------------------------------------*/
lypinator 0:bb348c97df44 166 /* Exported functions --------------------------------------------------------*/
lypinator 0:bb348c97df44 167 /** @addtogroup TIMEx_Exported_Functions
lypinator 0:bb348c97df44 168 * @{
lypinator 0:bb348c97df44 169 */
lypinator 0:bb348c97df44 170
lypinator 0:bb348c97df44 171 /** @addtogroup TIMEx_Exported_Functions_Group1
lypinator 0:bb348c97df44 172 * @{
lypinator 0:bb348c97df44 173 */
lypinator 0:bb348c97df44 174 /* Timer Hall Sensor functions **********************************************/
lypinator 0:bb348c97df44 175 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Init(TIM_HandleTypeDef* htim, TIM_HallSensor_InitTypeDef* sConfig);
lypinator 0:bb348c97df44 176 HAL_StatusTypeDef HAL_TIMEx_HallSensor_DeInit(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 177
lypinator 0:bb348c97df44 178 void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 179 void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 180
lypinator 0:bb348c97df44 181 /* Blocking mode: Polling */
lypinator 0:bb348c97df44 182 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 183 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 184 /* Non-Blocking mode: Interrupt */
lypinator 0:bb348c97df44 185 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 186 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_IT(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 187 /* Non-Blocking mode: DMA */
lypinator 0:bb348c97df44 188 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_DMA(TIM_HandleTypeDef* htim, uint32_t *pData, uint16_t Length);
lypinator 0:bb348c97df44 189 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_DMA(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 190 /**
lypinator 0:bb348c97df44 191 * @}
lypinator 0:bb348c97df44 192 */
lypinator 0:bb348c97df44 193
lypinator 0:bb348c97df44 194 /** @addtogroup TIMEx_Exported_Functions_Group2
lypinator 0:bb348c97df44 195 * @{
lypinator 0:bb348c97df44 196 */
lypinator 0:bb348c97df44 197 /* Timer Complementary Output Compare functions *****************************/
lypinator 0:bb348c97df44 198 /* Blocking mode: Polling */
lypinator 0:bb348c97df44 199 HAL_StatusTypeDef HAL_TIMEx_OCN_Start(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 200 HAL_StatusTypeDef HAL_TIMEx_OCN_Stop(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 201
lypinator 0:bb348c97df44 202 /* Non-Blocking mode: Interrupt */
lypinator 0:bb348c97df44 203 HAL_StatusTypeDef HAL_TIMEx_OCN_Start_IT(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 204 HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_IT(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 205
lypinator 0:bb348c97df44 206 /* Non-Blocking mode: DMA */
lypinator 0:bb348c97df44 207 HAL_StatusTypeDef HAL_TIMEx_OCN_Start_DMA(TIM_HandleTypeDef* htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
lypinator 0:bb348c97df44 208 HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_DMA(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 209 /**
lypinator 0:bb348c97df44 210 * @}
lypinator 0:bb348c97df44 211 */
lypinator 0:bb348c97df44 212
lypinator 0:bb348c97df44 213 /** @addtogroup TIMEx_Exported_Functions_Group3
lypinator 0:bb348c97df44 214 * @{
lypinator 0:bb348c97df44 215 */
lypinator 0:bb348c97df44 216 /* Timer Complementary PWM functions ****************************************/
lypinator 0:bb348c97df44 217 /* Blocking mode: Polling */
lypinator 0:bb348c97df44 218 HAL_StatusTypeDef HAL_TIMEx_PWMN_Start(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 219 HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 220
lypinator 0:bb348c97df44 221 /* Non-Blocking mode: Interrupt */
lypinator 0:bb348c97df44 222 HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_IT(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 223 HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_IT(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 224 /* Non-Blocking mode: DMA */
lypinator 0:bb348c97df44 225 HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_DMA(TIM_HandleTypeDef* htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
lypinator 0:bb348c97df44 226 HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_DMA(TIM_HandleTypeDef* htim, uint32_t Channel);
lypinator 0:bb348c97df44 227 /**
lypinator 0:bb348c97df44 228 * @}
lypinator 0:bb348c97df44 229 */
lypinator 0:bb348c97df44 230
lypinator 0:bb348c97df44 231 /** @addtogroup TIMEx_Exported_Functions_Group4
lypinator 0:bb348c97df44 232 * @{
lypinator 0:bb348c97df44 233 */
lypinator 0:bb348c97df44 234 /* Timer Complementary One Pulse functions **********************************/
lypinator 0:bb348c97df44 235 /* Blocking mode: Polling */
lypinator 0:bb348c97df44 236 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start(TIM_HandleTypeDef* htim, uint32_t OutputChannel);
lypinator 0:bb348c97df44 237 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef* htim, uint32_t OutputChannel);
lypinator 0:bb348c97df44 238
lypinator 0:bb348c97df44 239 /* Non-Blocking mode: Interrupt */
lypinator 0:bb348c97df44 240 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef* htim, uint32_t OutputChannel);
lypinator 0:bb348c97df44 241 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef* htim, uint32_t OutputChannel);
lypinator 0:bb348c97df44 242 /**
lypinator 0:bb348c97df44 243 * @}
lypinator 0:bb348c97df44 244 */
lypinator 0:bb348c97df44 245
lypinator 0:bb348c97df44 246 /** @addtogroup TIMEx_Exported_Functions_Group5
lypinator 0:bb348c97df44 247 * @{
lypinator 0:bb348c97df44 248 */
lypinator 0:bb348c97df44 249 /* Extension Control functions ************************************************/
lypinator 0:bb348c97df44 250 HAL_StatusTypeDef HAL_TIMEx_ConfigCommutationEvent(TIM_HandleTypeDef* htim, uint32_t InputTrigger, uint32_t CommutationSource);
lypinator 0:bb348c97df44 251 HAL_StatusTypeDef HAL_TIMEx_ConfigCommutationEvent_IT(TIM_HandleTypeDef* htim, uint32_t InputTrigger, uint32_t CommutationSource);
lypinator 0:bb348c97df44 252 HAL_StatusTypeDef HAL_TIMEx_ConfigCommutationEvent_DMA(TIM_HandleTypeDef* htim, uint32_t InputTrigger, uint32_t CommutationSource);
lypinator 0:bb348c97df44 253 HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef* htim, TIM_MasterConfigTypeDef * sMasterConfig);
lypinator 0:bb348c97df44 254 HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef* htim, TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig);
lypinator 0:bb348c97df44 255 HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef* htim, uint32_t Remap);
lypinator 0:bb348c97df44 256 /**
lypinator 0:bb348c97df44 257 * @}
lypinator 0:bb348c97df44 258 */
lypinator 0:bb348c97df44 259
lypinator 0:bb348c97df44 260 /** @addtogroup TIMEx_Exported_Functions_Group6
lypinator 0:bb348c97df44 261 * @{
lypinator 0:bb348c97df44 262 */
lypinator 0:bb348c97df44 263 /* Extension Callback *********************************************************/
lypinator 0:bb348c97df44 264 void HAL_TIMEx_CommutationCallback(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 265 void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 266 void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma);
lypinator 0:bb348c97df44 267 /**
lypinator 0:bb348c97df44 268 * @}
lypinator 0:bb348c97df44 269 */
lypinator 0:bb348c97df44 270
lypinator 0:bb348c97df44 271 /** @addtogroup TIMEx_Exported_Functions_Group7
lypinator 0:bb348c97df44 272 * @{
lypinator 0:bb348c97df44 273 */
lypinator 0:bb348c97df44 274 /* Extension Peripheral State functions **************************************/
lypinator 0:bb348c97df44 275 HAL_TIM_StateTypeDef HAL_TIMEx_HallSensor_GetState(TIM_HandleTypeDef* htim);
lypinator 0:bb348c97df44 276 /**
lypinator 0:bb348c97df44 277 * @}
lypinator 0:bb348c97df44 278 */
lypinator 0:bb348c97df44 279
lypinator 0:bb348c97df44 280 /**
lypinator 0:bb348c97df44 281 * @}
lypinator 0:bb348c97df44 282 */
lypinator 0:bb348c97df44 283
lypinator 0:bb348c97df44 284 /* Private types -------------------------------------------------------------*/
lypinator 0:bb348c97df44 285 /* Private variables ---------------------------------------------------------*/
lypinator 0:bb348c97df44 286 /* Private constants ---------------------------------------------------------*/
lypinator 0:bb348c97df44 287 /* Private macros ------------------------------------------------------------*/
lypinator 0:bb348c97df44 288 /** @defgroup TIMEx_Private_Macros TIM Private Macros
lypinator 0:bb348c97df44 289 * @{
lypinator 0:bb348c97df44 290 */
lypinator 0:bb348c97df44 291 #if defined (STM32F446xx)
lypinator 0:bb348c97df44 292 #define IS_TIM_REMAP(TIM_REMAP) (((TIM_REMAP) == TIM_TIM2_TIM8_TRGO)||\
lypinator 0:bb348c97df44 293 ((TIM_REMAP) == TIM_TIM2_ETH_PTP)||\
lypinator 0:bb348c97df44 294 ((TIM_REMAP) == TIM_TIM2_USBFS_SOF)||\
lypinator 0:bb348c97df44 295 ((TIM_REMAP) == TIM_TIM2_USBHS_SOF)||\
lypinator 0:bb348c97df44 296 ((TIM_REMAP) == TIM_TIM5_GPIO)||\
lypinator 0:bb348c97df44 297 ((TIM_REMAP) == TIM_TIM5_LSI)||\
lypinator 0:bb348c97df44 298 ((TIM_REMAP) == TIM_TIM5_LSE)||\
lypinator 0:bb348c97df44 299 ((TIM_REMAP) == TIM_TIM5_RTC)||\
lypinator 0:bb348c97df44 300 ((TIM_REMAP) == TIM_TIM11_GPIO)||\
lypinator 0:bb348c97df44 301 ((TIM_REMAP) == TIM_TIM11_SPDIFRX)||\
lypinator 0:bb348c97df44 302 ((TIM_REMAP) == TIM_TIM11_HSE))
lypinator 0:bb348c97df44 303 #elif defined(STM32F413xx) || defined(STM32F423xx)
lypinator 0:bb348c97df44 304 #define IS_TIM_REMAP(TIM_REMAP) (((TIM_REMAP) == TIM_TIM2_TIM8_TRGO)||\
lypinator 0:bb348c97df44 305 ((TIM_REMAP) == TIM_TIM2_ETH_PTP)||\
lypinator 0:bb348c97df44 306 ((TIM_REMAP) == TIM_TIM2_USBFS_SOF)||\
lypinator 0:bb348c97df44 307 ((TIM_REMAP) == TIM_TIM2_USBHS_SOF)||\
lypinator 0:bb348c97df44 308 ((TIM_REMAP) == TIM_TIM5_GPIO)||\
lypinator 0:bb348c97df44 309 ((TIM_REMAP) == TIM_TIM5_LSI)||\
lypinator 0:bb348c97df44 310 ((TIM_REMAP) == TIM_TIM5_LSE)||\
lypinator 0:bb348c97df44 311 ((TIM_REMAP) == TIM_TIM5_RTC)||\
lypinator 0:bb348c97df44 312 ((TIM_REMAP) == TIM_TIM11_GPIO)||\
lypinator 0:bb348c97df44 313 ((TIM_REMAP) == TIM_TIM11_HSE)||\
lypinator 0:bb348c97df44 314 ((TIM_REMAP) == TIM_TIM9_TIM3_TRGO)||\
lypinator 0:bb348c97df44 315 ((TIM_REMAP) == TIM_TIM9_LPTIM)||\
lypinator 0:bb348c97df44 316 ((TIM_REMAP) == TIM_TIM5_TIM3_TRGO)||\
lypinator 0:bb348c97df44 317 ((TIM_REMAP) == TIM_TIM5_LPTIM)||\
lypinator 0:bb348c97df44 318 ((TIM_REMAP) == TIM_TIM1_TIM3_TRGO)||\
lypinator 0:bb348c97df44 319 ((TIM_REMAP) == TIM_TIM1_LPTIM))
lypinator 0:bb348c97df44 320 #else
lypinator 0:bb348c97df44 321 #define IS_TIM_REMAP(TIM_REMAP) (((TIM_REMAP) == TIM_TIM2_TIM8_TRGO)||\
lypinator 0:bb348c97df44 322 ((TIM_REMAP) == TIM_TIM2_ETH_PTP)||\
lypinator 0:bb348c97df44 323 ((TIM_REMAP) == TIM_TIM2_USBFS_SOF)||\
lypinator 0:bb348c97df44 324 ((TIM_REMAP) == TIM_TIM2_USBHS_SOF)||\
lypinator 0:bb348c97df44 325 ((TIM_REMAP) == TIM_TIM5_GPIO)||\
lypinator 0:bb348c97df44 326 ((TIM_REMAP) == TIM_TIM5_LSI)||\
lypinator 0:bb348c97df44 327 ((TIM_REMAP) == TIM_TIM5_LSE)||\
lypinator 0:bb348c97df44 328 ((TIM_REMAP) == TIM_TIM5_RTC)||\
lypinator 0:bb348c97df44 329 ((TIM_REMAP) == TIM_TIM11_GPIO)||\
lypinator 0:bb348c97df44 330 ((TIM_REMAP) == TIM_TIM11_HSE))
lypinator 0:bb348c97df44 331 #endif /* STM32F446xx */
lypinator 0:bb348c97df44 332
lypinator 0:bb348c97df44 333 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F413xx) || defined(STM32F423xx)
lypinator 0:bb348c97df44 334 #define IS_TIM_SYSTEMBREAKINPUT(BREAKINPUT) (((BREAKINPUT) == TIM_SYSTEMBREAKINPUT_HARDFAULT)||\
lypinator 0:bb348c97df44 335 ((BREAKINPUT) == TIM_SYSTEMBREAKINPUT_PVD)||\
lypinator 0:bb348c97df44 336 ((BREAKINPUT) == TIM_SYSTEMBREAKINPUT_HARDFAULT_PVD))
lypinator 0:bb348c97df44 337
lypinator 0:bb348c97df44 338 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx || STM32F413xx || STM32F423xx */
lypinator 0:bb348c97df44 339
lypinator 0:bb348c97df44 340 #define IS_TIM_DEADTIME(DEADTIME) ((DEADTIME) <= 0xFFU)
lypinator 0:bb348c97df44 341 /**
lypinator 0:bb348c97df44 342 * @}
lypinator 0:bb348c97df44 343 */
lypinator 0:bb348c97df44 344
lypinator 0:bb348c97df44 345 /* Private functions ---------------------------------------------------------*/
lypinator 0:bb348c97df44 346 /** @defgroup TIMEx_Private_Functions TIM Private Functions
lypinator 0:bb348c97df44 347 * @{
lypinator 0:bb348c97df44 348 */
lypinator 0:bb348c97df44 349
lypinator 0:bb348c97df44 350 /**
lypinator 0:bb348c97df44 351 * @}
lypinator 0:bb348c97df44 352 */
lypinator 0:bb348c97df44 353
lypinator 0:bb348c97df44 354 /**
lypinator 0:bb348c97df44 355 * @}
lypinator 0:bb348c97df44 356 */
lypinator 0:bb348c97df44 357
lypinator 0:bb348c97df44 358 /**
lypinator 0:bb348c97df44 359 * @}
lypinator 0:bb348c97df44 360 */
lypinator 0:bb348c97df44 361
lypinator 0:bb348c97df44 362 #ifdef __cplusplus
lypinator 0:bb348c97df44 363 }
lypinator 0:bb348c97df44 364 #endif
lypinator 0:bb348c97df44 365
lypinator 0:bb348c97df44 366 #endif /* __STM32F4xx_HAL_TIM_EX_H */
lypinator 0:bb348c97df44 367
lypinator 0:bb348c97df44 368 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/