Subversion Repositories LedShow

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 9
Line 4... Line 4...
4
  * @author  MCD Application Team
4
  * @author  MCD Application Team
5
  * @brief   Header file of TIM HAL module.
5
  * @brief   Header file of TIM HAL module.
6
  ******************************************************************************
6
  ******************************************************************************
7
  * @attention
7
  * @attention
8
  *
8
  *
9
  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
9
  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-
 
10
  * All rights reserved.</center></h2>
10
  *
11
  *
11
  * Redistribution and use in source and binary forms, with or without modification,
12
  * This software component is licensed by ST under BSD 3-Clause license,
12
  * are permitted provided that the following conditions are met:
13
  * the "License"; You may not use this file except in compliance with the
13
  *   1. Redistributions of source code must retain the above copyright notice,
-
 
14
  *      this list of conditions and the following disclaimer.
-
 
15
  *   2. Redistributions in binary form must reproduce the above copyright notice,
-
 
16
  *      this list of conditions and the following disclaimer in the documentation
-
 
17
  *      and/or other materials provided with the distribution.
14
  * License. You may obtain a copy of the License at:
18
  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-
 
19
  *      may be used to endorse or promote products derived from this software
15
  *                        opensource.org/licenses/BSD-3-Clause
20
  *      without specific prior written permission.
-
 
21
  *
-
 
22
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-
 
23
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-
 
24
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-
 
25
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-
 
26
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-
 
27
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-
 
28
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-
 
29
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-
 
30
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-
 
31
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
 
32
  *
16
  *
33
  ******************************************************************************
17
  ******************************************************************************
34
  */
18
  */
35
 
19
 
36
/* Define to prevent recursive inclusion -------------------------------------*/
20
/* Define to prevent recursive inclusion -------------------------------------*/
37
#ifndef __STM32F1xx_HAL_TIM_H
21
#ifndef STM32F1xx_HAL_TIM_H
38
#define __STM32F1xx_HAL_TIM_H
22
#define STM32F1xx_HAL_TIM_H
39
 
23
 
40
#ifdef __cplusplus
24
#ifdef __cplusplus
41
 extern "C" {
25
extern "C" {
42
#endif
26
#endif
43
 
27
 
44
/* Includes ------------------------------------------------------------------*/
28
/* Includes ------------------------------------------------------------------*/
45
#include "stm32f1xx_hal_def.h"
29
#include "stm32f1xx_hal_def.h"
46
 
30
 
Line 54... Line 38...
54
 
38
 
55
/* Exported types ------------------------------------------------------------*/
39
/* Exported types ------------------------------------------------------------*/
56
/** @defgroup TIM_Exported_Types TIM Exported Types
40
/** @defgroup TIM_Exported_Types TIM Exported Types
57
  * @{
41
  * @{
58
  */
42
  */
-
 
43
 
59
/**
44
/**
60
  * @brief  TIM Time base Configuration Structure definition
45
  * @brief  TIM Time base Configuration Structure definition
61
  */
46
  */
62
typedef struct
47
typedef struct
63
{
48
{
Line 78... Line 63...
78
                                    reaches zero, an update event is generated and counting restarts
63
                                    reaches zero, an update event is generated and counting restarts
79
                                    from the RCR value (N).
64
                                    from the RCR value (N).
80
                                    This means in PWM mode that (N+1) corresponds to:
65
                                    This means in PWM mode that (N+1) corresponds to:
81
                                        - the number of PWM periods in edge-aligned mode
66
                                        - the number of PWM periods in edge-aligned mode
82
                                        - the number of half PWM period in center-aligned mode
67
                                        - the number of half PWM period in center-aligned mode
83
                                     This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF.
68
                                     GP timers: this parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF.
84
                                     @note This parameter is valid only for TIM1 and TIM8. */
69
                                     Advanced timers: this parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */
85
                                                                         
70
 
86
  uint32_t AutoReloadPreload;  /*!< Specifies the auto-reload preload.
71
  uint32_t AutoReloadPreload;  /*!< Specifies the auto-reload preload.
87
                                    This parameter can be a value of @ref TIM_AutoReloadPreload */
72
                                   This parameter can be a value of @ref TIM_AutoReloadPreload */
88
} TIM_Base_InitTypeDef;
73
} TIM_Base_InitTypeDef;
89
 
74
 
90
/**
75
/**
91
  * @brief  TIM Output Compare Configuration Structure definition
76
  * @brief  TIM Output Compare Configuration Structure definition
92
  */
77
  */
Line 101... Line 86...
101
  uint32_t OCPolarity;    /*!< Specifies the output polarity.
86
  uint32_t OCPolarity;    /*!< Specifies the output polarity.
102
                               This parameter can be a value of @ref TIM_Output_Compare_Polarity */
87
                               This parameter can be a value of @ref TIM_Output_Compare_Polarity */
103
 
88
 
104
  uint32_t OCNPolarity;   /*!< Specifies the complementary output polarity.
89
  uint32_t OCNPolarity;   /*!< Specifies the complementary output polarity.
105
                               This parameter can be a value of @ref TIM_Output_Compare_N_Polarity
90
                               This parameter can be a value of @ref TIM_Output_Compare_N_Polarity
106
                               @note This parameter is valid only for TIM1 and TIM8. */
91
                               @note This parameter is valid only for timer instances supporting break feature. */
107
 
92
 
108
  uint32_t OCFastMode;   /*!< Specifies the Fast mode state.
93
  uint32_t OCFastMode;    /*!< Specifies the Fast mode state.
109
                               This parameter can be a value of @ref TIM_Output_Fast_State
94
                               This parameter can be a value of @ref TIM_Output_Fast_State
110
                               @note This parameter is valid only in PWM1 and PWM2 mode. */
95
                               @note This parameter is valid only in PWM1 and PWM2 mode. */
111
 
96
 
112
 
97
 
113
  uint32_t OCIdleState;   /*!< Specifies the TIM Output Compare pin state during Idle state.
98
  uint32_t OCIdleState;   /*!< Specifies the TIM Output Compare pin state during Idle state.
114
                               This parameter can be a value of @ref TIM_Output_Compare_Idle_State
99
                               This parameter can be a value of @ref TIM_Output_Compare_Idle_State
115
                               @note This parameter is valid only for TIM1 and TIM8. */
100
                               @note This parameter is valid only for timer instances supporting break feature. */
116
 
101
 
117
  uint32_t OCNIdleState;  /*!< Specifies the TIM Output Compare pin state during Idle state.
102
  uint32_t OCNIdleState;  /*!< Specifies the TIM Output Compare pin state during Idle state.
118
                               This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State
103
                               This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State
119
                               @note This parameter is valid only for TIM1 and TIM8. */
104
                               @note This parameter is valid only for timer instances supporting break feature. */
120
} TIM_OC_InitTypeDef;
105
} TIM_OC_InitTypeDef;
121
 
106
 
122
/**
107
/**
123
  * @brief  TIM One Pulse Mode Configuration Structure definition
108
  * @brief  TIM One Pulse Mode Configuration Structure definition
124
  */
109
  */
Line 133... Line 118...
133
  uint32_t OCPolarity;    /*!< Specifies the output polarity.
118
  uint32_t OCPolarity;    /*!< Specifies the output polarity.
134
                               This parameter can be a value of @ref TIM_Output_Compare_Polarity */
119
                               This parameter can be a value of @ref TIM_Output_Compare_Polarity */
135
 
120
 
136
  uint32_t OCNPolarity;   /*!< Specifies the complementary output polarity.
121
  uint32_t OCNPolarity;   /*!< Specifies the complementary output polarity.
137
                               This parameter can be a value of @ref TIM_Output_Compare_N_Polarity
122
                               This parameter can be a value of @ref TIM_Output_Compare_N_Polarity
138
                               @note This parameter is valid only for TIM1 and TIM8. */
123
                               @note This parameter is valid only for timer instances supporting break feature. */
139
 
124
 
140
  uint32_t OCIdleState;   /*!< Specifies the TIM Output Compare pin state during Idle state.
125
  uint32_t OCIdleState;   /*!< Specifies the TIM Output Compare pin state during Idle state.
141
                               This parameter can be a value of @ref TIM_Output_Compare_Idle_State
126
                               This parameter can be a value of @ref TIM_Output_Compare_Idle_State
142
                               @note This parameter is valid only for TIM1 and TIM8. */
127
                               @note This parameter is valid only for timer instances supporting break feature. */
143
 
128
 
144
  uint32_t OCNIdleState;  /*!< Specifies the TIM Output Compare pin state during Idle state.
129
  uint32_t OCNIdleState;  /*!< Specifies the TIM Output Compare pin state during Idle state.
145
                               This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State
130
                               This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State
146
                               @note This parameter is valid only for TIM1 and TIM8. */
131
                               @note This parameter is valid only for timer instances supporting break feature. */
147
 
132
 
148
  uint32_t ICPolarity;    /*!< Specifies the active edge of the input signal.
133
  uint32_t ICPolarity;    /*!< Specifies the active edge of the input signal.
149
                               This parameter can be a value of @ref TIM_Input_Capture_Polarity */
134
                               This parameter can be a value of @ref TIM_Input_Capture_Polarity */
150
 
135
 
151
  uint32_t ICSelection;   /*!< Specifies the input.
136
  uint32_t ICSelection;   /*!< Specifies the input.
Line 153... Line 138...
153
 
138
 
154
  uint32_t ICFilter;      /*!< Specifies the input capture filter.
139
  uint32_t ICFilter;      /*!< Specifies the input capture filter.
155
                              This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
140
                              This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
156
} TIM_OnePulse_InitTypeDef;
141
} TIM_OnePulse_InitTypeDef;
157
 
142
 
158
 
-
 
159
/**
143
/**
160
  * @brief  TIM Input Capture Configuration Structure definition
144
  * @brief  TIM Input Capture Configuration Structure definition
161
  */
145
  */
162
typedef struct
146
typedef struct
163
{
147
{
164
  uint32_t  ICPolarity;   /*!< Specifies the active edge of the input signal.
148
  uint32_t  ICPolarity;  /*!< Specifies the active edge of the input signal.
165
                               This parameter can be a value of @ref TIM_Input_Capture_Polarity */
149
                              This parameter can be a value of @ref TIM_Input_Capture_Polarity */
166
 
150
 
167
  uint32_t ICSelection;  /*!< Specifies the input.
151
  uint32_t ICSelection;  /*!< Specifies the input.
168
                              This parameter can be a value of @ref TIM_Input_Capture_Selection */
152
                              This parameter can be a value of @ref TIM_Input_Capture_Selection */
169
 
153
 
170
  uint32_t ICPrescaler;  /*!< Specifies the Input Capture Prescaler.
154
  uint32_t ICPrescaler;  /*!< Specifies the Input Capture Prescaler.
Line 181... Line 165...
181
{
165
{
182
  uint32_t EncoderMode;   /*!< Specifies the active edge of the input signal.
166
  uint32_t EncoderMode;   /*!< Specifies the active edge of the input signal.
183
                               This parameter can be a value of @ref TIM_Encoder_Mode */
167
                               This parameter can be a value of @ref TIM_Encoder_Mode */
184
 
168
 
185
  uint32_t IC1Polarity;   /*!< Specifies the active edge of the input signal.
169
  uint32_t IC1Polarity;   /*!< Specifies the active edge of the input signal.
186
                               This parameter can be a value of @ref TIM_Input_Capture_Polarity */
170
                               This parameter can be a value of @ref TIM_Encoder_Input_Polarity */
187
 
171
 
188
  uint32_t IC1Selection;  /*!< Specifies the input.
172
  uint32_t IC1Selection;  /*!< Specifies the input.
189
                               This parameter can be a value of @ref TIM_Input_Capture_Selection */
173
                               This parameter can be a value of @ref TIM_Input_Capture_Selection */
190
 
174
 
191
  uint32_t IC1Prescaler;  /*!< Specifies the Input Capture Prescaler.
175
  uint32_t IC1Prescaler;  /*!< Specifies the Input Capture Prescaler.
Line 193... Line 177...
193
 
177
 
194
  uint32_t IC1Filter;     /*!< Specifies the input capture filter.
178
  uint32_t IC1Filter;     /*!< Specifies the input capture filter.
195
                               This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
179
                               This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
196
 
180
 
197
  uint32_t IC2Polarity;   /*!< Specifies the active edge of the input signal.
181
  uint32_t IC2Polarity;   /*!< Specifies the active edge of the input signal.
198
                               This parameter can be a value of @ref TIM_Input_Capture_Polarity */
182
                               This parameter can be a value of @ref TIM_Encoder_Input_Polarity */
199
 
183
 
200
  uint32_t IC2Selection;  /*!< Specifies the input.
184
  uint32_t IC2Selection;  /*!< Specifies the input.
201
                              This parameter can be a value of @ref TIM_Input_Capture_Selection */
185
                              This parameter can be a value of @ref TIM_Input_Capture_Selection */
202
 
186
 
203
  uint32_t IC2Prescaler;  /*!< Specifies the Input Capture Prescaler.
187
  uint32_t IC2Prescaler;  /*!< Specifies the Input Capture Prescaler.
Line 205... Line 189...
205
 
189
 
206
  uint32_t IC2Filter;     /*!< Specifies the input capture filter.
190
  uint32_t IC2Filter;     /*!< Specifies the input capture filter.
207
                               This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
191
                               This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
208
} TIM_Encoder_InitTypeDef;
192
} TIM_Encoder_InitTypeDef;
209
 
193
 
210
 
-
 
211
/**
194
/**
212
  * @brief  TIM Clock Configuration Handle Structure definition
195
  * @brief  Clock Configuration Handle Structure definition
213
  */
196
  */
214
typedef struct
197
typedef struct
215
{
198
{
216
  uint32_t ClockSource;     /*!< TIM clock sources
199
  uint32_t ClockSource;     /*!< TIM clock sources
217
                                 This parameter can be a value of @ref TIM_Clock_Source */
200
                                 This parameter can be a value of @ref TIM_Clock_Source */
218
  uint32_t ClockPolarity;   /*!< TIM clock polarity
201
  uint32_t ClockPolarity;   /*!< TIM clock polarity
219
                                 This parameter can be a value of @ref TIM_Clock_Polarity */
202
                                 This parameter can be a value of @ref TIM_Clock_Polarity */
220
  uint32_t ClockPrescaler;  /*!< TIM clock prescaler
203
  uint32_t ClockPrescaler;  /*!< TIM clock prescaler
221
                                 This parameter can be a value of @ref TIM_Clock_Prescaler */
204
                                 This parameter can be a value of @ref TIM_Clock_Prescaler */
222
  uint32_t ClockFilter;    /*!< TIM clock filter
205
  uint32_t ClockFilter;     /*!< TIM clock filter
223
                                This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
206
                                 This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
224
}TIM_ClockConfigTypeDef;
207
} TIM_ClockConfigTypeDef;
225
 
208
 
226
/**
209
/**
227
  * @brief  TIM Clear Input Configuration Handle Structure definition
210
  * @brief  TIM Clear Input Configuration Handle Structure definition
228
  */
211
  */
229
typedef struct
212
typedef struct
Line 233... Line 216...
233
  uint32_t ClearInputSource;     /*!< TIM clear Input sources
216
  uint32_t ClearInputSource;     /*!< TIM clear Input sources
234
                                      This parameter can be a value of @ref TIM_ClearInput_Source */
217
                                      This parameter can be a value of @ref TIM_ClearInput_Source */
235
  uint32_t ClearInputPolarity;   /*!< TIM Clear Input polarity
218
  uint32_t ClearInputPolarity;   /*!< TIM Clear Input polarity
236
                                      This parameter can be a value of @ref TIM_ClearInput_Polarity */
219
                                      This parameter can be a value of @ref TIM_ClearInput_Polarity */
237
  uint32_t ClearInputPrescaler;  /*!< TIM Clear Input prescaler
220
  uint32_t ClearInputPrescaler;  /*!< TIM Clear Input prescaler
238
                                      This parameter can be a value of @ref TIM_ClearInput_Prescaler */
221
                                      This parameter must be 0: When OCRef clear feature is used with ETR source, ETR prescaler must be off */
239
  uint32_t ClearInputFilter;    /*!< TIM Clear Input filter
222
  uint32_t ClearInputFilter;     /*!< TIM Clear Input filter
240
                                     This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
223
                                      This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
241
}TIM_ClearInputConfigTypeDef;
224
} TIM_ClearInputConfigTypeDef;
-
 
225
 
-
 
226
/**
-
 
227
  * @brief  TIM Master configuration Structure definition
-
 
228
  */
-
 
229
typedef struct
-
 
230
{
-
 
231
  uint32_t  MasterOutputTrigger;   /*!< Trigger output (TRGO) selection
-
 
232
                                        This parameter can be a value of @ref TIM_Master_Mode_Selection */
-
 
233
  uint32_t  MasterSlaveMode;       /*!< Master/slave mode selection
-
 
234
                                        This parameter can be a value of @ref TIM_Master_Slave_Mode
-
 
235
                                        @note When the Master/slave mode is enabled, the effect of
-
 
236
                                        an event on the trigger input (TRGI) is delayed to allow a
-
 
237
                                        perfect synchronization between the current timer and its
-
 
238
                                        slaves (through TRGO). It is not mandatory in case of timer
-
 
239
                                        synchronization mode. */
-
 
240
} TIM_MasterConfigTypeDef;
242
 
241
 
243
/**
242
/**
244
  * @brief  TIM Slave configuration Structure definition
243
  * @brief  TIM Slave configuration Structure definition
245
  */
244
  */
246
typedef struct {
245
typedef struct
-
 
246
{
247
  uint32_t  SlaveMode;      /*!< Slave mode selection
247
  uint32_t  SlaveMode;         /*!< Slave mode selection
248
                               This parameter can be a value of @ref TIM_Slave_Mode */
248
                                    This parameter can be a value of @ref TIM_Slave_Mode */
249
  uint32_t  InputTrigger;      /*!< Input Trigger source
249
  uint32_t  InputTrigger;      /*!< Input Trigger source
250
                                  This parameter can be a value of @ref TIM_Trigger_Selection */
250
                                    This parameter can be a value of @ref TIM_Trigger_Selection */
251
  uint32_t  TriggerPolarity;   /*!< Input Trigger polarity
251
  uint32_t  TriggerPolarity;   /*!< Input Trigger polarity
252
                                  This parameter can be a value of @ref TIM_Trigger_Polarity */
252
                                    This parameter can be a value of @ref TIM_Trigger_Polarity */
253
  uint32_t  TriggerPrescaler;  /*!< Input trigger prescaler
253
  uint32_t  TriggerPrescaler;  /*!< Input trigger prescaler
254
                                  This parameter can be a value of @ref TIM_Trigger_Prescaler */
254
                                    This parameter can be a value of @ref TIM_Trigger_Prescaler */
255
  uint32_t  TriggerFilter;     /*!< Input trigger filter
255
  uint32_t  TriggerFilter;     /*!< Input trigger filter
256
                                  This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
256
                                    This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF  */
257
 
257
 
258
}TIM_SlaveConfigTypeDef;
258
} TIM_SlaveConfigTypeDef;
-
 
259
 
-
 
260
/**
-
 
261
  * @brief  TIM Break input(s) and Dead time configuration Structure definition
-
 
262
  * @note   2 break inputs can be configured (BKIN and BKIN2) with configurable
-
 
263
  *        filter and polarity.
-
 
264
  */
-
 
265
typedef struct
-
 
266
{
-
 
267
  uint32_t OffStateRunMode;      /*!< TIM off state in run mode
-
 
268
                                      This parameter can be a value of @ref TIM_OSSR_Off_State_Selection_for_Run_mode_state */
-
 
269
  uint32_t OffStateIDLEMode;     /*!< TIM off state in IDLE mode
-
 
270
                                      This parameter can be a value of @ref TIM_OSSI_Off_State_Selection_for_Idle_mode_state */
-
 
271
  uint32_t LockLevel;            /*!< TIM Lock level
-
 
272
                                      This parameter can be a value of @ref TIM_Lock_level */
-
 
273
  uint32_t DeadTime;             /*!< TIM dead Time
-
 
274
                                      This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF */
-
 
275
  uint32_t BreakState;           /*!< TIM Break State
-
 
276
                                      This parameter can be a value of @ref TIM_Break_Input_enable_disable */
-
 
277
  uint32_t BreakPolarity;        /*!< TIM Break input polarity
-
 
278
                                      This parameter can be a value of @ref TIM_Break_Polarity */
-
 
279
  uint32_t BreakFilter;          /*!< Specifies the break input filter.
-
 
280
                                      This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
-
 
281
  uint32_t AutomaticOutput;      /*!< TIM Automatic Output Enable state
-
 
282
                                      This parameter can be a value of @ref TIM_AOE_Bit_Set_Reset */
-
 
283
} TIM_BreakDeadTimeConfigTypeDef;
259
 
284
 
260
/**
285
/**
261
  * @brief  HAL State structures definition
286
  * @brief  HAL State structures definition
262
  */
287
  */
263
typedef enum
288
typedef enum
Line 265... Line 290...
265
  HAL_TIM_STATE_RESET             = 0x00U,    /*!< Peripheral not yet initialized or disabled  */
290
  HAL_TIM_STATE_RESET             = 0x00U,    /*!< Peripheral not yet initialized or disabled  */
266
  HAL_TIM_STATE_READY             = 0x01U,    /*!< Peripheral Initialized and ready for use    */
291
  HAL_TIM_STATE_READY             = 0x01U,    /*!< Peripheral Initialized and ready for use    */
267
  HAL_TIM_STATE_BUSY              = 0x02U,    /*!< An internal process is ongoing              */
292
  HAL_TIM_STATE_BUSY              = 0x02U,    /*!< An internal process is ongoing              */
268
  HAL_TIM_STATE_TIMEOUT           = 0x03U,    /*!< Timeout state                               */
293
  HAL_TIM_STATE_TIMEOUT           = 0x03U,    /*!< Timeout state                               */
269
  HAL_TIM_STATE_ERROR             = 0x04U     /*!< Reception process is ongoing                */
294
  HAL_TIM_STATE_ERROR             = 0x04U     /*!< Reception process is ongoing                */
270
}HAL_TIM_StateTypeDef;
295
} HAL_TIM_StateTypeDef;
-
 
296
 
-
 
297
/**
-
 
298
  * @brief  TIM Channel States definition
-
 
299
  */
-
 
300
typedef enum
-
 
301
{
-
 
302
  HAL_TIM_CHANNEL_STATE_RESET             = 0x00U,    /*!< TIM Channel initial state                         */
-
 
303
  HAL_TIM_CHANNEL_STATE_READY             = 0x01U,    /*!< TIM Channel ready for use                         */
-
 
304
  HAL_TIM_CHANNEL_STATE_BUSY              = 0x02U,    /*!< An internal process is ongoing on the TIM channel */
-
 
305
} HAL_TIM_ChannelStateTypeDef;
-
 
306
 
-
 
307
/**
-
 
308
  * @brief  DMA Burst States definition
-
 
309
  */
-
 
310
typedef enum
-
 
311
{
-
 
312
  HAL_DMA_BURST_STATE_RESET             = 0x00U,    /*!< DMA Burst initial state */
-
 
313
  HAL_DMA_BURST_STATE_READY             = 0x01U,    /*!< DMA Burst ready for use */
-
 
314
  HAL_DMA_BURST_STATE_BUSY              = 0x02U,    /*!< Ongoing DMA Burst       */
-
 
315
} HAL_TIM_DMABurstStateTypeDef;
271
 
316
 
272
/**
317
/**
273
  * @brief  HAL Active channel structures definition
318
  * @brief  HAL Active channel structures definition
274
  */
319
  */
275
typedef enum
320
typedef enum
Line 277... Line 322...
277
  HAL_TIM_ACTIVE_CHANNEL_1        = 0x01U,    /*!< The active channel is 1     */
322
  HAL_TIM_ACTIVE_CHANNEL_1        = 0x01U,    /*!< The active channel is 1     */
278
  HAL_TIM_ACTIVE_CHANNEL_2        = 0x02U,    /*!< The active channel is 2     */
323
  HAL_TIM_ACTIVE_CHANNEL_2        = 0x02U,    /*!< The active channel is 2     */
279
  HAL_TIM_ACTIVE_CHANNEL_3        = 0x04U,    /*!< The active channel is 3     */
324
  HAL_TIM_ACTIVE_CHANNEL_3        = 0x04U,    /*!< The active channel is 3     */
280
  HAL_TIM_ACTIVE_CHANNEL_4        = 0x08U,    /*!< The active channel is 4     */
325
  HAL_TIM_ACTIVE_CHANNEL_4        = 0x08U,    /*!< The active channel is 4     */
281
  HAL_TIM_ACTIVE_CHANNEL_CLEARED  = 0x00U     /*!< All active channels cleared */
326
  HAL_TIM_ACTIVE_CHANNEL_CLEARED  = 0x00U     /*!< All active channels cleared */
282
}HAL_TIM_ActiveChannel;
327
} HAL_TIM_ActiveChannel;
283
 
328
 
284
/**
329
/**
285
  * @brief  TIM Time Base Handle Structure definition
330
  * @brief  TIM Time Base Handle Structure definition
286
  */
331
  */
-
 
332
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
-
 
333
typedef struct __TIM_HandleTypeDef
-
 
334
#else
287
typedef struct
335
typedef struct
-
 
336
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
-
 
337
{
-
 
338
  TIM_TypeDef                        *Instance;         /*!< Register base address                             */
-
 
339
  TIM_Base_InitTypeDef               Init;              /*!< TIM Time Base required parameters                 */
-
 
340
  HAL_TIM_ActiveChannel              Channel;           /*!< Active channel                                    */
-
 
341
  DMA_HandleTypeDef                  *hdma[7];          /*!< DMA Handlers array
-
 
342
                                                             This array is accessed by a @ref DMA_Handle_index */
-
 
343
  HAL_LockTypeDef                    Lock;              /*!< Locking object                                    */
-
 
344
  __IO HAL_TIM_StateTypeDef          State;             /*!< TIM operation state                               */
-
 
345
  __IO HAL_TIM_ChannelStateTypeDef   ChannelState[4];   /*!< TIM channel operation state                       */
-
 
346
  __IO HAL_TIM_ChannelStateTypeDef   ChannelNState[4];  /*!< TIM complementary channel operation state         */
-
 
347
  __IO HAL_TIM_DMABurstStateTypeDef  DMABurstState;     /*!< DMA burst operation state                         */
-
 
348
 
-
 
349
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
-
 
350
  void (* Base_MspInitCallback)(struct __TIM_HandleTypeDef *htim);              /*!< TIM Base Msp Init Callback                              */
-
 
351
  void (* Base_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);            /*!< TIM Base Msp DeInit Callback                            */
-
 
352
  void (* IC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);                /*!< TIM IC Msp Init Callback                                */
-
 
353
  void (* IC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);              /*!< TIM IC Msp DeInit Callback                              */
-
 
354
  void (* OC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);                /*!< TIM OC Msp Init Callback                                */
-
 
355
  void (* OC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);              /*!< TIM OC Msp DeInit Callback                              */
-
 
356
  void (* PWM_MspInitCallback)(struct __TIM_HandleTypeDef *htim);               /*!< TIM PWM Msp Init Callback                               */
-
 
357
  void (* PWM_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);             /*!< TIM PWM Msp DeInit Callback                             */
-
 
358
  void (* OnePulse_MspInitCallback)(struct __TIM_HandleTypeDef *htim);          /*!< TIM One Pulse Msp Init Callback                         */
-
 
359
  void (* OnePulse_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);        /*!< TIM One Pulse Msp DeInit Callback                       */
-
 
360
  void (* Encoder_MspInitCallback)(struct __TIM_HandleTypeDef *htim);           /*!< TIM Encoder Msp Init Callback                           */
-
 
361
  void (* Encoder_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);         /*!< TIM Encoder Msp DeInit Callback                         */
-
 
362
  void (* HallSensor_MspInitCallback)(struct __TIM_HandleTypeDef *htim);        /*!< TIM Hall Sensor Msp Init Callback                       */
-
 
363
  void (* HallSensor_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);      /*!< TIM Hall Sensor Msp DeInit Callback                     */
-
 
364
  void (* PeriodElapsedCallback)(struct __TIM_HandleTypeDef *htim);             /*!< TIM Period Elapsed Callback                             */
-
 
365
  void (* PeriodElapsedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);     /*!< TIM Period Elapsed half complete Callback               */
-
 
366
  void (* TriggerCallback)(struct __TIM_HandleTypeDef *htim);                   /*!< TIM Trigger Callback                                    */
-
 
367
  void (* TriggerHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);           /*!< TIM Trigger half complete Callback                      */
-
 
368
  void (* IC_CaptureCallback)(struct __TIM_HandleTypeDef *htim);                /*!< TIM Input Capture Callback                              */
-
 
369
  void (* IC_CaptureHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);        /*!< TIM Input Capture half complete Callback                */
-
 
370
  void (* OC_DelayElapsedCallback)(struct __TIM_HandleTypeDef *htim);           /*!< TIM Output Compare Delay Elapsed Callback               */
-
 
371
  void (* PWM_PulseFinishedCallback)(struct __TIM_HandleTypeDef *htim);         /*!< TIM PWM Pulse Finished Callback                         */
-
 
372
  void (* PWM_PulseFinishedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM PWM Pulse Finished half complete Callback           */
-
 
373
  void (* ErrorCallback)(struct __TIM_HandleTypeDef *htim);                     /*!< TIM Error Callback                                      */
-
 
374
  void (* CommutationCallback)(struct __TIM_HandleTypeDef *htim);               /*!< TIM Commutation Callback                                */
-
 
375
  void (* CommutationHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);       /*!< TIM Commutation half complete Callback                  */
-
 
376
  void (* BreakCallback)(struct __TIM_HandleTypeDef *htim);                     /*!< TIM Break Callback                                      */
-
 
377
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
-
 
378
} TIM_HandleTypeDef;
-
 
379
 
-
 
380
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
-
 
381
/**
-
 
382
  * @brief  HAL TIM Callback ID enumeration definition
-
 
383
  */
-
 
384
typedef enum
288
{
385
{
-
 
386
  HAL_TIM_BASE_MSPINIT_CB_ID              = 0x00U   /*!< TIM Base MspInit Callback ID                              */
-
 
387
  , HAL_TIM_BASE_MSPDEINIT_CB_ID          = 0x01U   /*!< TIM Base MspDeInit Callback ID                            */
-
 
388
  , HAL_TIM_IC_MSPINIT_CB_ID              = 0x02U   /*!< TIM IC MspInit Callback ID                                */
-
 
389
  , HAL_TIM_IC_MSPDEINIT_CB_ID            = 0x03U   /*!< TIM IC MspDeInit Callback ID                              */
-
 
390
  , HAL_TIM_OC_MSPINIT_CB_ID              = 0x04U   /*!< TIM OC MspInit Callback ID                                */
-
 
391
  , HAL_TIM_OC_MSPDEINIT_CB_ID            = 0x05U   /*!< TIM OC MspDeInit Callback ID                              */
-
 
392
  , HAL_TIM_PWM_MSPINIT_CB_ID             = 0x06U   /*!< TIM PWM MspInit Callback ID                               */
-
 
393
  , HAL_TIM_PWM_MSPDEINIT_CB_ID           = 0x07U   /*!< TIM PWM MspDeInit Callback ID                             */
-
 
394
  , HAL_TIM_ONE_PULSE_MSPINIT_CB_ID       = 0x08U   /*!< TIM One Pulse MspInit Callback ID                         */
-
 
395
  , HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID     = 0x09U   /*!< TIM One Pulse MspDeInit Callback ID                       */
-
 
396
  , HAL_TIM_ENCODER_MSPINIT_CB_ID         = 0x0AU   /*!< TIM Encoder MspInit Callback ID                           */
-
 
397
  , HAL_TIM_ENCODER_MSPDEINIT_CB_ID       = 0x0BU   /*!< TIM Encoder MspDeInit Callback ID                         */
-
 
398
  , HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID     = 0x0CU   /*!< TIM Hall Sensor MspDeInit Callback ID                     */
-
 
399
  , HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID   = 0x0DU   /*!< TIM Hall Sensor MspDeInit Callback ID                     */
-
 
400
  , HAL_TIM_PERIOD_ELAPSED_CB_ID          = 0x0EU   /*!< TIM Period Elapsed Callback ID                             */
-
 
401
  , HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID     = 0x0FU   /*!< TIM Period Elapsed half complete Callback ID               */
289
  TIM_TypeDef                 *Instance;     /*!< Register base address             */
402
  , HAL_TIM_TRIGGER_CB_ID                 = 0x10U   /*!< TIM Trigger Callback ID                                    */
290
  TIM_Base_InitTypeDef        Init;          /*!< TIM Time Base required parameters */
403
  , HAL_TIM_TRIGGER_HALF_CB_ID            = 0x11U   /*!< TIM Trigger half complete Callback ID                      */
-
 
404
 
291
  HAL_TIM_ActiveChannel       Channel;       /*!< Active channel                    */
405
  , HAL_TIM_IC_CAPTURE_CB_ID              = 0x12U   /*!< TIM Input Capture Callback ID                              */
-
 
406
  , HAL_TIM_IC_CAPTURE_HALF_CB_ID         = 0x13U   /*!< TIM Input Capture half complete Callback ID                */
-
 
407
  , HAL_TIM_OC_DELAY_ELAPSED_CB_ID        = 0x14U   /*!< TIM Output Compare Delay Elapsed Callback ID               */
292
  DMA_HandleTypeDef           *hdma[7U];     /*!< DMA Handlers array
408
  , HAL_TIM_PWM_PULSE_FINISHED_CB_ID      = 0x15U   /*!< TIM PWM Pulse Finished Callback ID           */
-
 
409
  , HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID = 0x16U   /*!< TIM PWM Pulse Finished half complete Callback ID           */
293
                                                This array is accessed by a @ref TIM_DMA_Handle_index */
410
  , HAL_TIM_ERROR_CB_ID                   = 0x17U   /*!< TIM Error Callback ID                                      */
294
  HAL_LockTypeDef             Lock;          /*!< Locking object                    */
411
  , HAL_TIM_COMMUTATION_CB_ID             = 0x18U   /*!< TIM Commutation Callback ID                                */
295
  __IO HAL_TIM_StateTypeDef   State;         /*!< TIM operation state               */
412
  , HAL_TIM_COMMUTATION_HALF_CB_ID        = 0x19U   /*!< TIM Commutation half complete Callback ID                  */
-
 
413
  , HAL_TIM_BREAK_CB_ID                   = 0x1AU   /*!< TIM Break Callback ID                                      */
296
}TIM_HandleTypeDef;
414
} HAL_TIM_CallbackIDTypeDef;
-
 
415
 
-
 
416
/**
-
 
417
  * @brief  HAL TIM Callback pointer definition
-
 
418
  */
-
 
419
typedef  void (*pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim);  /*!< pointer to the TIM callback function */
-
 
420
 
-
 
421
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
297
 
422
 
298
/**
423
/**
299
  * @}
424
  * @}
300
  */
425
  */
-
 
426
/* End of exported types -----------------------------------------------------*/
301
 
427
 
302
/* Exported constants --------------------------------------------------------*/
428
/* Exported constants --------------------------------------------------------*/
303
/** @defgroup TIM_Exported_Constants TIM Exported Constants
429
/** @defgroup TIM_Exported_Constants TIM Exported Constants
304
  * @{
430
  * @{
305
  */
431
  */
306
 
432
 
-
 
433
/** @defgroup TIM_ClearInput_Source TIM Clear Input Source
-
 
434
  * @{
-
 
435
  */
-
 
436
#define TIM_CLEARINPUTSOURCE_NONE           0x00000000U   /*!< OCREF_CLR is disabled */
-
 
437
#define TIM_CLEARINPUTSOURCE_ETR            0x00000001U   /*!< OCREF_CLR is connected to ETRF input */
-
 
438
/**
-
 
439
  * @}
-
 
440
  */
-
 
441
 
-
 
442
/** @defgroup TIM_DMA_Base_address TIM DMA Base Address
-
 
443
  * @{
-
 
444
  */
-
 
445
#define TIM_DMABASE_CR1                    0x00000000U
-
 
446
#define TIM_DMABASE_CR2                    0x00000001U
-
 
447
#define TIM_DMABASE_SMCR                   0x00000002U
-
 
448
#define TIM_DMABASE_DIER                   0x00000003U
-
 
449
#define TIM_DMABASE_SR                     0x00000004U
-
 
450
#define TIM_DMABASE_EGR                    0x00000005U
-
 
451
#define TIM_DMABASE_CCMR1                  0x00000006U
-
 
452
#define TIM_DMABASE_CCMR2                  0x00000007U
-
 
453
#define TIM_DMABASE_CCER                   0x00000008U
-
 
454
#define TIM_DMABASE_CNT                    0x00000009U
-
 
455
#define TIM_DMABASE_PSC                    0x0000000AU
-
 
456
#define TIM_DMABASE_ARR                    0x0000000BU
-
 
457
#define TIM_DMABASE_RCR                    0x0000000CU
-
 
458
#define TIM_DMABASE_CCR1                   0x0000000DU
-
 
459
#define TIM_DMABASE_CCR2                   0x0000000EU
-
 
460
#define TIM_DMABASE_CCR3                   0x0000000FU
-
 
461
#define TIM_DMABASE_CCR4                   0x00000010U
-
 
462
#define TIM_DMABASE_BDTR                   0x00000011U
-
 
463
#define TIM_DMABASE_DCR                    0x00000012U
-
 
464
#define TIM_DMABASE_DMAR                   0x00000013U
-
 
465
/**
-
 
466
  * @}
-
 
467
  */
-
 
468
 
-
 
469
/** @defgroup TIM_Event_Source TIM Event Source
-
 
470
  * @{
-
 
471
  */
-
 
472
#define TIM_EVENTSOURCE_UPDATE              TIM_EGR_UG     /*!< Reinitialize the counter and generates an update of the registers */
-
 
473
#define TIM_EVENTSOURCE_CC1                 TIM_EGR_CC1G   /*!< A capture/compare event is generated on channel 1 */
-
 
474
#define TIM_EVENTSOURCE_CC2                 TIM_EGR_CC2G   /*!< A capture/compare event is generated on channel 2 */
-
 
475
#define TIM_EVENTSOURCE_CC3                 TIM_EGR_CC3G   /*!< A capture/compare event is generated on channel 3 */
-
 
476
#define TIM_EVENTSOURCE_CC4                 TIM_EGR_CC4G   /*!< A capture/compare event is generated on channel 4 */
-
 
477
#define TIM_EVENTSOURCE_COM                 TIM_EGR_COMG   /*!< A commutation event is generated */
-
 
478
#define TIM_EVENTSOURCE_TRIGGER             TIM_EGR_TG     /*!< A trigger event is generated */
-
 
479
#define TIM_EVENTSOURCE_BREAK               TIM_EGR_BG     /*!< A break event is generated */
-
 
480
/**
-
 
481
  * @}
-
 
482
  */
-
 
483
 
307
/** @defgroup TIM_Input_Channel_Polarity TIM Input Channel Polarity
484
/** @defgroup TIM_Input_Channel_Polarity TIM Input Channel polarity
308
  * @{
485
  * @{
309
  */
486
  */
310
#define  TIM_INPUTCHANNELPOLARITY_RISING      0x00000000U                       /*!< Polarity for TIx source */
487
#define  TIM_INPUTCHANNELPOLARITY_RISING      0x00000000U                       /*!< Polarity for TIx source */
311
#define  TIM_INPUTCHANNELPOLARITY_FALLING     (TIM_CCER_CC1P)                   /*!< Polarity for TIx source */
488
#define  TIM_INPUTCHANNELPOLARITY_FALLING     TIM_CCER_CC1P                     /*!< Polarity for TIx source */
312
#define  TIM_INPUTCHANNELPOLARITY_BOTHEDGE    (TIM_CCER_CC1P | TIM_CCER_CC1NP)  /*!< Polarity for TIx source */
489
#define  TIM_INPUTCHANNELPOLARITY_BOTHEDGE    (TIM_CCER_CC1P | TIM_CCER_CC1NP)  /*!< Polarity for TIx source */
313
/**
490
/**
314
  * @}
491
  * @}
315
  */
492
  */
316
 
493
 
317
/** @defgroup TIM_ETR_Polarity TIM ETR Polarity
494
/** @defgroup TIM_ETR_Polarity TIM ETR Polarity
318
  * @{
495
  * @{
319
  */
496
  */
320
#define TIM_ETRPOLARITY_INVERTED              (TIM_SMCR_ETP)                    /*!< Polarity for ETR source */
497
#define TIM_ETRPOLARITY_INVERTED              TIM_SMCR_ETP                      /*!< Polarity for ETR source */
321
#define TIM_ETRPOLARITY_NONINVERTED           0x00000000U                       /*!< Polarity for ETR source */
498
#define TIM_ETRPOLARITY_NONINVERTED           0x00000000U                       /*!< Polarity for ETR source */
322
/**
499
/**
323
  * @}
500
  * @}
324
  */
501
  */
325
 
502
 
326
/** @defgroup TIM_ETR_Prescaler TIM ETR Prescaler
503
/** @defgroup TIM_ETR_Prescaler TIM ETR Prescaler
327
  * @{
504
  * @{
328
  */
505
  */
329
#define TIM_ETRPRESCALER_DIV1                 0x00000000U                       /*!< No prescaler is used */
506
#define TIM_ETRPRESCALER_DIV1                 0x00000000U                       /*!< No prescaler is used */
330
#define TIM_ETRPRESCALER_DIV2                 (TIM_SMCR_ETPS_0)                 /*!< ETR input source is divided by 2 */
507
#define TIM_ETRPRESCALER_DIV2                 TIM_SMCR_ETPS_0                   /*!< ETR input source is divided by 2 */
331
#define TIM_ETRPRESCALER_DIV4                 (TIM_SMCR_ETPS_1)                 /*!< ETR input source is divided by 4 */
508
#define TIM_ETRPRESCALER_DIV4                 TIM_SMCR_ETPS_1                   /*!< ETR input source is divided by 4 */
332
#define TIM_ETRPRESCALER_DIV8                 (TIM_SMCR_ETPS)                   /*!< ETR input source is divided by 8 */
509
#define TIM_ETRPRESCALER_DIV8                 TIM_SMCR_ETPS                     /*!< ETR input source is divided by 8 */
333
/**
510
/**
334
  * @}
511
  * @}
335
  */
512
  */
336
 
513
 
337
/** @defgroup TIM_Counter_Mode TIM Counter Mode
514
/** @defgroup TIM_Counter_Mode TIM Counter Mode
338
  * @{
515
  * @{
339
  */
516
  */
340
#define TIM_COUNTERMODE_UP                 0x00000000U
517
#define TIM_COUNTERMODE_UP                 0x00000000U                          /*!< Counter used as up-counter   */
341
#define TIM_COUNTERMODE_DOWN               TIM_CR1_DIR
518
#define TIM_COUNTERMODE_DOWN               TIM_CR1_DIR                          /*!< Counter used as down-counter */
342
#define TIM_COUNTERMODE_CENTERALIGNED1     TIM_CR1_CMS_0
519
#define TIM_COUNTERMODE_CENTERALIGNED1     TIM_CR1_CMS_0                        /*!< Center-aligned mode 1        */
343
#define TIM_COUNTERMODE_CENTERALIGNED2     TIM_CR1_CMS_1
520
#define TIM_COUNTERMODE_CENTERALIGNED2     TIM_CR1_CMS_1                        /*!< Center-aligned mode 2        */
344
#define TIM_COUNTERMODE_CENTERALIGNED3     TIM_CR1_CMS
521
#define TIM_COUNTERMODE_CENTERALIGNED3     TIM_CR1_CMS                          /*!< Center-aligned mode 3        */
345
/**
522
/**
346
  * @}
523
  * @}
347
  */
524
  */
348
 
525
 
349
/** @defgroup TIM_ClockDivision TIM ClockDivision
526
/** @defgroup TIM_ClockDivision TIM Clock Division
350
  * @{
527
  * @{
351
  */
528
  */
352
#define TIM_CLOCKDIVISION_DIV1                       0x00000000U
529
#define TIM_CLOCKDIVISION_DIV1             0x00000000U                          /*!< Clock division: tDTS=tCK_INT   */
353
#define TIM_CLOCKDIVISION_DIV2                       (TIM_CR1_CKD_0)
530
#define TIM_CLOCKDIVISION_DIV2             TIM_CR1_CKD_0                        /*!< Clock division: tDTS=2*tCK_INT */
354
#define TIM_CLOCKDIVISION_DIV4                       (TIM_CR1_CKD_1)
531
#define TIM_CLOCKDIVISION_DIV4             TIM_CR1_CKD_1                        /*!< Clock division: tDTS=4*tCK_INT */
355
/**
532
/**
356
  * @}
533
  * @}
357
  */
534
  */
358
 
535
 
359
/** @defgroup TIM_AutoReloadPreload TIM Auto-Reload Preload
536
/** @defgroup TIM_Output_Compare_State TIM Output Compare State
360
  * @{
537
  * @{
361
  */
538
  */
362
#define TIM_AUTORELOAD_PRELOAD_DISABLE                0x0000U              /*!< TIMx_ARR register is not buffered */
539
#define TIM_OUTPUTSTATE_DISABLE            0x00000000U                          /*!< Capture/Compare 1 output disabled */
363
#define TIM_AUTORELOAD_PRELOAD_ENABLE                 (TIM_CR1_ARPE)       /*!< TIMx_ARR register is buffered */
540
#define TIM_OUTPUTSTATE_ENABLE             TIM_CCER_CC1E                        /*!< Capture/Compare 1 output enabled */
364
/**
541
/**
365
  * @}
542
  * @}
366
  */
543
  */
367
 
544
 
368
/** @defgroup TIM_Output_Compare_and_PWM_modes TIM Output Compare and PWM modes
545
/** @defgroup TIM_AutoReloadPreload TIM Auto-Reload Preload
369
  * @{
546
  * @{
370
  */
547
  */
371
#define TIM_OCMODE_TIMING                   0x00000000U
-
 
372
#define TIM_OCMODE_ACTIVE                   (TIM_CCMR1_OC1M_0)
-
 
373
#define TIM_OCMODE_INACTIVE                 (TIM_CCMR1_OC1M_1)
-
 
374
#define TIM_OCMODE_TOGGLE                   (TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC1M_1)
548
#define TIM_AUTORELOAD_PRELOAD_DISABLE                0x00000000U               /*!< TIMx_ARR register is not buffered */
375
#define TIM_OCMODE_PWM1                     (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2)
549
#define TIM_AUTORELOAD_PRELOAD_ENABLE                 TIM_CR1_ARPE              /*!< TIMx_ARR register is buffered */
376
#define TIM_OCMODE_PWM2                     (TIM_CCMR1_OC1M)
-
 
377
#define TIM_OCMODE_FORCED_ACTIVE            (TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC1M_2)
-
 
378
#define TIM_OCMODE_FORCED_INACTIVE          (TIM_CCMR1_OC1M_2)
-
 
379
/**
-
 
380
  * @}
-
 
381
  */
-
 
382
 
550
 
383
/** @defgroup TIM_Output_Compare_State TIM Output Compare State
-
 
384
  * @{
-
 
385
  */
-
 
386
#define TIM_OUTPUTSTATE_DISABLE            0x00000000U
-
 
387
#define TIM_OUTPUTSTATE_ENABLE             (TIM_CCER_CC1E)
-
 
388
/**
551
/**
389
  * @}
552
  * @}
390
  */
553
  */
391
 
554
 
392
/** @defgroup TIM_Output_Fast_State TIM Output Fast State
555
/** @defgroup TIM_Output_Fast_State TIM Output Fast State
393
  * @{
556
  * @{
394
  */
557
  */
395
#define TIM_OCFAST_DISABLE                0x00000000U
558
#define TIM_OCFAST_DISABLE                 0x00000000U                          /*!< Output Compare fast disable */
396
#define TIM_OCFAST_ENABLE                 (TIM_CCMR1_OC1FE)
559
#define TIM_OCFAST_ENABLE                  TIM_CCMR1_OC1FE                      /*!< Output Compare fast enable  */
397
/**
560
/**
398
  * @}
561
  * @}
399
  */
562
  */
400
 
563
 
401
/** @defgroup TIM_Output_Compare_N_State TIM Complementary Output Compare State
564
/** @defgroup TIM_Output_Compare_N_State TIM Complementary Output Compare State
402
  * @{
565
  * @{
403
  */
566
  */
404
#define TIM_OUTPUTNSTATE_DISABLE            0x00000000U
567
#define TIM_OUTPUTNSTATE_DISABLE           0x00000000U                          /*!< OCxN is disabled  */
405
#define TIM_OUTPUTNSTATE_ENABLE             (TIM_CCER_CC1NE)
568
#define TIM_OUTPUTNSTATE_ENABLE            TIM_CCER_CC1NE                       /*!< OCxN is enabled   */
406
/**
569
/**
407
  * @}
570
  * @}
408
  */
571
  */
409
 
572
 
410
/** @defgroup TIM_Output_Compare_Polarity TIM Output Compare Polarity
573
/** @defgroup TIM_Output_Compare_Polarity TIM Output Compare Polarity
411
  * @{
574
  * @{
412
  */
575
  */
413
#define TIM_OCPOLARITY_HIGH                0x00000000U
576
#define TIM_OCPOLARITY_HIGH                0x00000000U                          /*!< Capture/Compare output polarity  */
414
#define TIM_OCPOLARITY_LOW                 (TIM_CCER_CC1P)
577
#define TIM_OCPOLARITY_LOW                 TIM_CCER_CC1P                        /*!< Capture/Compare output polarity  */
415
/**
578
/**
416
  * @}
579
  * @}
417
  */
580
  */
418
 
581
 
419
/** @defgroup TIM_Output_Compare_N_Polarity TIM Complementary Output Compare Polarity
582
/** @defgroup TIM_Output_Compare_N_Polarity TIM Complementary Output Compare Polarity
420
  * @{
583
  * @{
421
  */
584
  */
422
#define TIM_OCNPOLARITY_HIGH               0x00000000U
585
#define TIM_OCNPOLARITY_HIGH               0x00000000U                          /*!< Capture/Compare complementary output polarity */
423
#define TIM_OCNPOLARITY_LOW                (TIM_CCER_CC1NP)
586
#define TIM_OCNPOLARITY_LOW                TIM_CCER_CC1NP                       /*!< Capture/Compare complementary output polarity */
424
/**
587
/**
425
  * @}
588
  * @}
426
  */
589
  */
427
 
590
 
428
/** @defgroup TIM_Output_Compare_Idle_State TIM Output Compare Idle State
591
/** @defgroup TIM_Output_Compare_Idle_State TIM Output Compare Idle State
429
  * @{
592
  * @{
430
  */
593
  */
431
#define TIM_OCIDLESTATE_SET                (TIM_CR2_OIS1)
594
#define TIM_OCIDLESTATE_SET                TIM_CR2_OIS1                         /*!< Output Idle state: OCx=1 when MOE=0 */
432
#define TIM_OCIDLESTATE_RESET              0x00000000U
595
#define TIM_OCIDLESTATE_RESET              0x00000000U                          /*!< Output Idle state: OCx=0 when MOE=0 */
433
/**
596
/**
434
  * @}
597
  * @}
435
  */
598
  */
436
 
599
 
437
/** @defgroup TIM_Output_Compare_N_Idle_State TIM Complementary Output Compare Idle State
600
/** @defgroup TIM_Output_Compare_N_Idle_State TIM Complementary Output Compare Idle State
438
  * @{
601
  * @{
439
  */
602
  */
440
#define TIM_OCNIDLESTATE_SET               (TIM_CR2_OIS1N)
603
#define TIM_OCNIDLESTATE_SET               TIM_CR2_OIS1N                        /*!< Complementary output Idle state: OCxN=1 when MOE=0 */
441
#define TIM_OCNIDLESTATE_RESET             0x00000000U
604
#define TIM_OCNIDLESTATE_RESET             0x00000000U                          /*!< Complementary output Idle state: OCxN=0 when MOE=0 */
442
/**
605
/**
443
  * @}
606
  * @}
444
  */
607
  */
445
 
608
 
446
/** @defgroup TIM_Channel TIM Channel
609
/** @defgroup TIM_Input_Capture_Polarity TIM Input Capture Polarity
447
  * @{
610
  * @{
448
  */
611
  */
449
#define TIM_CHANNEL_1                      0x00000000U
612
#define  TIM_ICPOLARITY_RISING             TIM_INPUTCHANNELPOLARITY_RISING      /*!< Capture triggered by rising edge on timer input                  */
450
#define TIM_CHANNEL_2                      0x00000004U
613
#define  TIM_ICPOLARITY_FALLING            TIM_INPUTCHANNELPOLARITY_FALLING     /*!< Capture triggered by falling edge on timer input                 */
451
#define TIM_CHANNEL_3                      0x00000008U
-
 
452
#define TIM_CHANNEL_4                      0x0000000CU
614
#define  TIM_ICPOLARITY_BOTHEDGE           TIM_INPUTCHANNELPOLARITY_BOTHEDGE    /*!< Capture triggered by both rising and falling edges on timer input*/
453
#define TIM_CHANNEL_ALL                    0x00000018U
-
 
454
/**
615
/**
455
  * @}
616
  * @}
456
  */
617
  */
457
 
618
 
458
/** @defgroup TIM_Input_Capture_Polarity TIM Input Capture Polarity
619
/** @defgroup TIM_Encoder_Input_Polarity TIM Encoder Input Polarity
459
  * @{
620
  * @{
460
  */
621
  */
461
#define  TIM_ICPOLARITY_RISING             TIM_INPUTCHANNELPOLARITY_RISING      /*!< Capture triggered by rising edge on timer input */
622
#define  TIM_ENCODERINPUTPOLARITY_RISING   TIM_INPUTCHANNELPOLARITY_RISING      /*!< Encoder input with rising edge polarity  */
462
#define  TIM_ICPOLARITY_FALLING            TIM_INPUTCHANNELPOLARITY_FALLING     /*!< Capture triggered by falling edge on timer input */
623
#define  TIM_ENCODERINPUTPOLARITY_FALLING  TIM_INPUTCHANNELPOLARITY_FALLING     /*!< Encoder input with falling edge polarity */
463
#define  TIM_ICPOLARITY_BOTHEDGE           TIM_INPUTCHANNELPOLARITY_BOTHEDGE    /*!< Capture triggered by both rising and falling edges on timer input */
-
 
464
/**
624
/**
465
  * @}
625
  * @}
466
  */
626
  */
467
 
627
 
468
/** @defgroup TIM_Input_Capture_Selection TIM Input Capture Selection
628
/** @defgroup TIM_Input_Capture_Selection TIM Input Capture Selection
469
  * @{
629
  * @{
470
  */
630
  */
471
#define TIM_ICSELECTION_DIRECTTI           (TIM_CCMR1_CC1S_0)   /*!< TIM Input 1, 2, 3 or 4 is selected to be
631
#define TIM_ICSELECTION_DIRECTTI           TIM_CCMR1_CC1S_0                     /*!< TIM Input 1, 2, 3 or 4 is selected to be
472
                                                                               connected to IC1, IC2, IC3 or IC4, respectively */
632
                                                                                     connected to IC1, IC2, IC3 or IC4, respectively */
473
#define TIM_ICSELECTION_INDIRECTTI         (TIM_CCMR1_CC1S_1)   /*!< TIM Input 1, 2, 3 or 4 is selected to be
633
#define TIM_ICSELECTION_INDIRECTTI         TIM_CCMR1_CC1S_1                     /*!< TIM Input 1, 2, 3 or 4 is selected to be
474
                                                                               connected to IC2, IC1, IC4 or IC3, respectively */
634
                                                                                     connected to IC2, IC1, IC4 or IC3, respectively */
475
#define TIM_ICSELECTION_TRC                (TIM_CCMR1_CC1S)     /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to TRC */
635
#define TIM_ICSELECTION_TRC                TIM_CCMR1_CC1S                       /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to TRC */
476
/**
636
/**
477
  * @}
637
  * @}
478
  */
638
  */
479
 
639
 
480
/** @defgroup TIM_Input_Capture_Prescaler TIM Input Capture Prescaler
640
/** @defgroup TIM_Input_Capture_Prescaler TIM Input Capture Prescaler
481
  * @{
641
  * @{
482
  */
642
  */
483
#define TIM_ICPSC_DIV1                     0x00000000U              /*!< Capture performed each time an edge is detected on the capture input */
643
#define TIM_ICPSC_DIV1                     0x00000000U                          /*!< Capture performed each time an edge is detected on the capture input */
484
#define TIM_ICPSC_DIV2                     (TIM_CCMR1_IC1PSC_0)     /*!< Capture performed once every 2 events */
644
#define TIM_ICPSC_DIV2                     TIM_CCMR1_IC1PSC_0                   /*!< Capture performed once every 2 events                                */
485
#define TIM_ICPSC_DIV4                     (TIM_CCMR1_IC1PSC_1)     /*!< Capture performed once every 4 events */
645
#define TIM_ICPSC_DIV4                     TIM_CCMR1_IC1PSC_1                   /*!< Capture performed once every 4 events                                */
486
#define TIM_ICPSC_DIV8                     (TIM_CCMR1_IC1PSC)       /*!< Capture performed once every 8 events */
646
#define TIM_ICPSC_DIV8                     TIM_CCMR1_IC1PSC                     /*!< Capture performed once every 8 events                                */
487
/**
647
/**
488
  * @}
648
  * @}
489
  */
649
  */
490
 
650
 
491
/** @defgroup TIM_One_Pulse_Mode TIM One Pulse Mode
651
/** @defgroup TIM_One_Pulse_Mode TIM One Pulse Mode
492
  * @{
652
  * @{
493
  */
653
  */
494
#define TIM_OPMODE_SINGLE                  (TIM_CR1_OPM)
654
#define TIM_OPMODE_SINGLE                  TIM_CR1_OPM                          /*!< Counter stops counting at the next update event */
495
#define TIM_OPMODE_REPETITIVE              0x00000000U
655
#define TIM_OPMODE_REPETITIVE              0x00000000U                          /*!< Counter is not stopped at update event          */
496
/**
656
/**
497
  * @}
657
  * @}
498
  */
658
  */
499
 
659
 
500
/** @defgroup TIM_Encoder_Mode TIM Encoder Mode
660
/** @defgroup TIM_Encoder_Mode TIM Encoder Mode
501
  * @{
661
  * @{
502
  */
662
  */
503
#define TIM_ENCODERMODE_TI1                (TIM_SMCR_SMS_0)
663
#define TIM_ENCODERMODE_TI1                      TIM_SMCR_SMS_0                                                      /*!< Quadrature encoder mode 1, x2 mode, counts up/down on TI1FP1 edge depending on TI2FP2 level  */
504
#define TIM_ENCODERMODE_TI2                (TIM_SMCR_SMS_1)
664
#define TIM_ENCODERMODE_TI2                      TIM_SMCR_SMS_1                                                      /*!< Quadrature encoder mode 2, x2 mode, counts up/down on TI2FP2 edge depending on TI1FP1 level. */
505
#define TIM_ENCODERMODE_TI12               (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
665
#define TIM_ENCODERMODE_TI12                     (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)                                   /*!< Quadrature encoder mode 3, x4 mode, counts up/down on both TI1FP1 and TI2FP2 edges depending on the level of the other input. */
506
/**
666
/**
507
  * @}
667
  * @}
508
  */
668
  */
509
 
669
 
510
/** @defgroup TIM_Interrupt_definition TIM Interrupt Definition
670
/** @defgroup TIM_Interrupt_definition TIM interrupt Definition
511
  * @{
671
  * @{
512
  */
672
  */
513
#define TIM_IT_UPDATE           (TIM_DIER_UIE)
673
#define TIM_IT_UPDATE                      TIM_DIER_UIE                         /*!< Update interrupt            */
514
#define TIM_IT_CC1              (TIM_DIER_CC1IE)
674
#define TIM_IT_CC1                         TIM_DIER_CC1IE                       /*!< Capture/Compare 1 interrupt */
515
#define TIM_IT_CC2              (TIM_DIER_CC2IE)
675
#define TIM_IT_CC2                         TIM_DIER_CC2IE                       /*!< Capture/Compare 2 interrupt */
516
#define TIM_IT_CC3              (TIM_DIER_CC3IE)
676
#define TIM_IT_CC3                         TIM_DIER_CC3IE                       /*!< Capture/Compare 3 interrupt */
517
#define TIM_IT_CC4              (TIM_DIER_CC4IE)
677
#define TIM_IT_CC4                         TIM_DIER_CC4IE                       /*!< Capture/Compare 4 interrupt */
518
#define TIM_IT_COM              (TIM_DIER_COMIE)
678
#define TIM_IT_COM                         TIM_DIER_COMIE                       /*!< Commutation interrupt       */
519
#define TIM_IT_TRIGGER          (TIM_DIER_TIE)
679
#define TIM_IT_TRIGGER                     TIM_DIER_TIE                         /*!< Trigger interrupt           */
520
#define TIM_IT_BREAK            (TIM_DIER_BIE)
680
#define TIM_IT_BREAK                       TIM_DIER_BIE                         /*!< Break interrupt             */
521
/**
681
/**
522
  * @}
682
  * @}
523
  */
683
  */
524
 
684
 
525
/** @defgroup TIM_Commutation_Source  TIM Commutation Source
685
/** @defgroup TIM_Commutation_Source  TIM Commutation Source
526
  * @{
686
  * @{
527
  */
687
  */
528
#define TIM_COMMUTATION_TRGI              (TIM_CR2_CCUS)
688
#define TIM_COMMUTATION_TRGI              TIM_CR2_CCUS                          /*!< When Capture/compare control bits are preloaded, they are updated by setting the COMG bit or when an rising edge occurs on trigger input */
529
#define TIM_COMMUTATION_SOFTWARE          0x00000000U
689
#define TIM_COMMUTATION_SOFTWARE          0x00000000U                           /*!< When Capture/compare control bits are preloaded, they are updated by setting the COMG bit */
530
 
-
 
531
/**
690
/**
532
  * @}
691
  * @}
533
  */
692
  */
534
 
693
 
535
/** @defgroup TIM_DMA_sources TIM DMA Sources
694
/** @defgroup TIM_DMA_sources TIM DMA Sources
536
  * @{
695
  * @{
537
  */
696
  */
538
#define TIM_DMA_UPDATE                     (TIM_DIER_UDE)
697
#define TIM_DMA_UPDATE                     TIM_DIER_UDE                         /*!< DMA request is triggered by the update event */
539
#define TIM_DMA_CC1                        (TIM_DIER_CC1DE)
698
#define TIM_DMA_CC1                        TIM_DIER_CC1DE                       /*!< DMA request is triggered by the capture/compare macth 1 event */
540
#define TIM_DMA_CC2                        (TIM_DIER_CC2DE)
699
#define TIM_DMA_CC2                        TIM_DIER_CC2DE                       /*!< DMA request is triggered by the capture/compare macth 2 event event */
541
#define TIM_DMA_CC3                        (TIM_DIER_CC3DE)
700
#define TIM_DMA_CC3                        TIM_DIER_CC3DE                       /*!< DMA request is triggered by the capture/compare macth 3 event event */
542
#define TIM_DMA_CC4                        (TIM_DIER_CC4DE)
701
#define TIM_DMA_CC4                        TIM_DIER_CC4DE                       /*!< DMA request is triggered by the capture/compare macth 4 event event */
543
#define TIM_DMA_COM                        (TIM_DIER_COMDE)
702
#define TIM_DMA_COM                        TIM_DIER_COMDE                       /*!< DMA request is triggered by the commutation event */
544
#define TIM_DMA_TRIGGER                    (TIM_DIER_TDE)
703
#define TIM_DMA_TRIGGER                    TIM_DIER_TDE                         /*!< DMA request is triggered by the trigger event */
545
/**
704
/**
546
  * @}
705
  * @}
547
  */
706
  */
548
 
707
 
549
/** @defgroup TIM_Event_Source TIM Event Source
708
/** @defgroup TIM_Flag_definition TIM Flag Definition
550
  * @{
709
  * @{
551
  */
710
  */
552
#define TIM_EVENTSOURCE_UPDATE              TIM_EGR_UG
711
#define TIM_FLAG_UPDATE                    TIM_SR_UIF                           /*!< Update interrupt flag         */
553
#define TIM_EVENTSOURCE_CC1                 TIM_EGR_CC1G
712
#define TIM_FLAG_CC1                       TIM_SR_CC1IF                         /*!< Capture/Compare 1 interrupt flag */
554
#define TIM_EVENTSOURCE_CC2                 TIM_EGR_CC2G
713
#define TIM_FLAG_CC2                       TIM_SR_CC2IF                         /*!< Capture/Compare 2 interrupt flag */
555
#define TIM_EVENTSOURCE_CC3                 TIM_EGR_CC3G
714
#define TIM_FLAG_CC3                       TIM_SR_CC3IF                         /*!< Capture/Compare 3 interrupt flag */
556
#define TIM_EVENTSOURCE_CC4                 TIM_EGR_CC4G
715
#define TIM_FLAG_CC4                       TIM_SR_CC4IF                         /*!< Capture/Compare 4 interrupt flag */
557
#define TIM_EVENTSOURCE_COM                 TIM_EGR_COMG
716
#define TIM_FLAG_COM                       TIM_SR_COMIF                         /*!< Commutation interrupt flag    */
558
#define TIM_EVENTSOURCE_TRIGGER             TIM_EGR_TG
717
#define TIM_FLAG_TRIGGER                   TIM_SR_TIF                           /*!< Trigger interrupt flag        */
559
#define TIM_EVENTSOURCE_BREAK               TIM_EGR_BG
718
#define TIM_FLAG_BREAK                     TIM_SR_BIF                           /*!< Break interrupt flag          */
-
 
719
#define TIM_FLAG_CC1OF                     TIM_SR_CC1OF                         /*!< Capture 1 overcapture flag    */
-
 
720
#define TIM_FLAG_CC2OF                     TIM_SR_CC2OF                         /*!< Capture 2 overcapture flag    */
-
 
721
#define TIM_FLAG_CC3OF                     TIM_SR_CC3OF                         /*!< Capture 3 overcapture flag    */
-
 
722
#define TIM_FLAG_CC4OF                     TIM_SR_CC4OF                         /*!< Capture 4 overcapture flag    */
560
/**
723
/**
561
  * @}
724
  * @}
562
  */
725
  */
563
 
726
 
564
/** @defgroup TIM_Flag_definition TIM Flag Definition
727
/** @defgroup TIM_Channel TIM Channel
565
  * @{
728
  * @{
566
  */
729
  */
567
#define TIM_FLAG_UPDATE                    (TIM_SR_UIF)
-
 
568
#define TIM_FLAG_CC1                       (TIM_SR_CC1IF)
730
#define TIM_CHANNEL_1                      0x00000000U                          /*!< Capture/compare channel 1 identifier      */
569
#define TIM_FLAG_CC2                       (TIM_SR_CC2IF)
731
#define TIM_CHANNEL_2                      0x00000004U                          /*!< Capture/compare channel 2 identifier      */
570
#define TIM_FLAG_CC3                       (TIM_SR_CC3IF)
732
#define TIM_CHANNEL_3                      0x00000008U                          /*!< Capture/compare channel 3 identifier      */
571
#define TIM_FLAG_CC4                       (TIM_SR_CC4IF)
733
#define TIM_CHANNEL_4                      0x0000000CU                          /*!< Capture/compare channel 4 identifier      */
572
#define TIM_FLAG_COM                       (TIM_SR_COMIF)
734
#define TIM_CHANNEL_ALL                    0x0000003CU                          /*!< Global Capture/compare channel identifier  */
573
#define TIM_FLAG_TRIGGER                   (TIM_SR_TIF)
-
 
574
#define TIM_FLAG_BREAK                     (TIM_SR_BIF)
-
 
575
#define TIM_FLAG_CC1OF                     (TIM_SR_CC1OF)
-
 
576
#define TIM_FLAG_CC2OF                     (TIM_SR_CC2OF)
-
 
577
#define TIM_FLAG_CC3OF                     (TIM_SR_CC3OF)
-
 
578
#define TIM_FLAG_CC4OF                     (TIM_SR_CC4OF)
-
 
579
/**
735
/**
580
  * @}
736
  * @}
581
  */
737
  */
582
 
738
 
583
/** @defgroup TIM_Clock_Source TIM Clock Source
739
/** @defgroup TIM_Clock_Source TIM Clock Source
584
  * @{
740
  * @{
585
  */
741
  */
586
#define TIM_CLOCKSOURCE_ETRMODE2    (TIM_SMCR_ETPS_1)
742
#define TIM_CLOCKSOURCE_ETRMODE2    TIM_SMCR_ETPS_1      /*!< External clock source mode 2                          */
587
#define TIM_CLOCKSOURCE_INTERNAL    (TIM_SMCR_ETPS_0)
743
#define TIM_CLOCKSOURCE_INTERNAL    TIM_SMCR_ETPS_0      /*!< Internal clock source                                 */
588
#define TIM_CLOCKSOURCE_ITR0        ((uint32_t)0x0000)
744
#define TIM_CLOCKSOURCE_ITR0        TIM_TS_ITR0          /*!< External clock source mode 1 (ITR0)                   */
589
#define TIM_CLOCKSOURCE_ITR1        (TIM_SMCR_TS_0)
745
#define TIM_CLOCKSOURCE_ITR1        TIM_TS_ITR1          /*!< External clock source mode 1 (ITR1)                   */
590
#define TIM_CLOCKSOURCE_ITR2        (TIM_SMCR_TS_1)
746
#define TIM_CLOCKSOURCE_ITR2        TIM_TS_ITR2          /*!< External clock source mode 1 (ITR2)                   */
591
#define TIM_CLOCKSOURCE_ITR3        (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
747
#define TIM_CLOCKSOURCE_ITR3        TIM_TS_ITR3          /*!< External clock source mode 1 (ITR3)                   */
592
#define TIM_CLOCKSOURCE_TI1ED       (TIM_SMCR_TS_2)
748
#define TIM_CLOCKSOURCE_TI1ED       TIM_TS_TI1F_ED       /*!< External clock source mode 1 (TTI1FP1 + edge detect.) */
593
#define TIM_CLOCKSOURCE_TI1         (TIM_SMCR_TS_0 | TIM_SMCR_TS_2)
749
#define TIM_CLOCKSOURCE_TI1         TIM_TS_TI1FP1        /*!< External clock source mode 1 (TTI1FP1)                */
594
#define TIM_CLOCKSOURCE_TI2         (TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
750
#define TIM_CLOCKSOURCE_TI2         TIM_TS_TI2FP2        /*!< External clock source mode 1 (TTI2FP2)                */
595
#define TIM_CLOCKSOURCE_ETRMODE1    (TIM_SMCR_TS)
751
#define TIM_CLOCKSOURCE_ETRMODE1    TIM_TS_ETRF          /*!< External clock source mode 1 (ETRF)                   */
596
/**
752
/**
597
  * @}
753
  * @}
598
  */
754
  */
599
 
755
 
600
/** @defgroup TIM_Clock_Polarity TIM Clock Polarity
756
/** @defgroup TIM_Clock_Polarity TIM Clock Polarity
Line 610... Line 766...
610
  */
766
  */
611
 
767
 
612
/** @defgroup TIM_Clock_Prescaler TIM Clock Prescaler
768
/** @defgroup TIM_Clock_Prescaler TIM Clock Prescaler
613
  * @{
769
  * @{
614
  */
770
  */
615
#define TIM_CLOCKPRESCALER_DIV1                 TIM_ETRPRESCALER_DIV1     /*!< No prescaler is used */
771
#define TIM_CLOCKPRESCALER_DIV1                 TIM_ETRPRESCALER_DIV1           /*!< No prescaler is used                                                     */
616
#define TIM_CLOCKPRESCALER_DIV2                 TIM_ETRPRESCALER_DIV2     /*!< Prescaler for External ETR Clock: Capture performed once every 2 events. */
772
#define TIM_CLOCKPRESCALER_DIV2                 TIM_ETRPRESCALER_DIV2           /*!< Prescaler for External ETR Clock: Capture performed once every 2 events. */
617
#define TIM_CLOCKPRESCALER_DIV4                 TIM_ETRPRESCALER_DIV4     /*!< Prescaler for External ETR Clock: Capture performed once every 4 events. */
773
#define TIM_CLOCKPRESCALER_DIV4                 TIM_ETRPRESCALER_DIV4           /*!< Prescaler for External ETR Clock: Capture performed once every 4 events. */
618
#define TIM_CLOCKPRESCALER_DIV8                 TIM_ETRPRESCALER_DIV8     /*!< Prescaler for External ETR Clock: Capture performed once every 8 events. */
774
#define TIM_CLOCKPRESCALER_DIV8                 TIM_ETRPRESCALER_DIV8           /*!< Prescaler for External ETR Clock: Capture performed once every 8 events. */
619
/**
775
/**
620
  * @}
776
  * @}
621
  */
777
  */
622
 
778
 
623
/** @defgroup TIM_ClearInput_Source TIM ClearInput Source
779
/** @defgroup TIM_ClearInput_Polarity TIM Clear Input Polarity
624
  * @{
780
  * @{
625
  */
781
  */
626
#define TIM_CLEARINPUTSOURCE_ETR           0x00000001U
782
#define TIM_CLEARINPUTPOLARITY_INVERTED           TIM_ETRPOLARITY_INVERTED      /*!< Polarity for ETRx pin */
627
#define TIM_CLEARINPUTSOURCE_NONE          0x00000000U
783
#define TIM_CLEARINPUTPOLARITY_NONINVERTED        TIM_ETRPOLARITY_NONINVERTED   /*!< Polarity for ETRx pin */
628
/**
784
/**
629
  * @}
785
  * @}
630
  */
786
  */
631
 
787
 
632
/** @defgroup TIM_ClearInput_Polarity TIM Clear Input Polarity
788
/** @defgroup TIM_ClearInput_Prescaler TIM Clear Input Prescaler
633
  * @{
789
  * @{
634
  */
790
  */
635
#define TIM_CLEARINPUTPOLARITY_INVERTED           TIM_ETRPOLARITY_INVERTED                    /*!< Polarity for ETRx pin */
791
#define TIM_CLEARINPUTPRESCALER_DIV1              TIM_ETRPRESCALER_DIV1         /*!< No prescaler is used                                                   */
636
#define TIM_CLEARINPUTPOLARITY_NONINVERTED        TIM_ETRPOLARITY_NONINVERTED                 /*!< Polarity for ETRx pin */
792
#define TIM_CLEARINPUTPRESCALER_DIV2              TIM_ETRPRESCALER_DIV2         /*!< Prescaler for External ETR pin: Capture performed once every 2 events. */
-
 
793
#define TIM_CLEARINPUTPRESCALER_DIV4              TIM_ETRPRESCALER_DIV4         /*!< Prescaler for External ETR pin: Capture performed once every 4 events. */
-
 
794
#define TIM_CLEARINPUTPRESCALER_DIV8              TIM_ETRPRESCALER_DIV8         /*!< Prescaler for External ETR pin: Capture performed once every 8 events. */
637
/**
795
/**
638
  * @}
796
  * @}
639
  */
797
  */
640
 
798
 
641
/** @defgroup TIM_ClearInput_Prescaler TIM Clear Input Prescaler
799
/** @defgroup TIM_OSSR_Off_State_Selection_for_Run_mode_state TIM OSSR OffState Selection for Run mode state
642
  * @{
800
  * @{
643
  */
801
  */
644
#define TIM_CLEARINPUTPRESCALER_DIV1                    TIM_ETRPRESCALER_DIV1      /*!< No prescaler is used */
-
 
645
#define TIM_CLEARINPUTPRESCALER_DIV2                    TIM_ETRPRESCALER_DIV2      /*!< Prescaler for External ETR pin: Capture performed once every 2 events. */
-
 
646
#define TIM_CLEARINPUTPRESCALER_DIV4                    TIM_ETRPRESCALER_DIV4      /*!< Prescaler for External ETR pin: Capture performed once every 4 events. */
802
#define TIM_OSSR_ENABLE                          TIM_BDTR_OSSR                  /*!< When inactive, OC/OCN outputs are enabled (still controlled by the timer)           */
647
#define TIM_CLEARINPUTPRESCALER_DIV8                    TIM_ETRPRESCALER_DIV8        /*!< Prescaler for External ETR pin: Capture performed once every 8 events. */
803
#define TIM_OSSR_DISABLE                         0x00000000U                    /*!< When inactive, OC/OCN outputs are disabled (not controlled any longer by the timer) */
648
/**
804
/**
649
  * @}
805
  * @}
650
  */
806
  */
651
 
807
 
652
/** @defgroup TIM_OSSR_Off_State_Selection_for_Run_mode_state TIM OSSR Off State Selection for Run mode state
808
/** @defgroup TIM_OSSI_Off_State_Selection_for_Idle_mode_state TIM OSSI OffState Selection for Idle mode state
653
  * @{
809
  * @{
654
  */
810
  */
655
#define TIM_OSSR_ENABLE         (TIM_BDTR_OSSR)
811
#define TIM_OSSI_ENABLE                          TIM_BDTR_OSSI                  /*!< When inactive, OC/OCN outputs are enabled (still controlled by the timer)           */
656
#define TIM_OSSR_DISABLE        0x00000000U
812
#define TIM_OSSI_DISABLE                         0x00000000U                    /*!< When inactive, OC/OCN outputs are disabled (not controlled any longer by the timer) */
657
/**
813
/**
658
  * @}
814
  * @}
659
  */
815
  */
660
 
-
 
661
/** @defgroup TIM_OSSI_Off_State_Selection_for_Idle_mode_state TIM OSSI Off State Selection for Idle mode state
816
/** @defgroup TIM_Lock_level  TIM Lock level
662
  * @{
817
  * @{
663
  */
818
  */
-
 
819
#define TIM_LOCKLEVEL_OFF                  0x00000000U                          /*!< LOCK OFF     */
664
#define TIM_OSSI_ENABLE        (TIM_BDTR_OSSI)
820
#define TIM_LOCKLEVEL_1                    TIM_BDTR_LOCK_0                      /*!< LOCK Level 1 */
665
#define TIM_OSSI_DISABLE       0x00000000U
821
#define TIM_LOCKLEVEL_2                    TIM_BDTR_LOCK_1                      /*!< LOCK Level 2 */
-
 
822
#define TIM_LOCKLEVEL_3                    TIM_BDTR_LOCK                        /*!< LOCK Level 3 */
666
/**
823
/**
667
  * @}
824
  * @}
668
  */
825
  */
669
 
826
 
670
/** @defgroup TIM_Lock_level TIM Lock level
827
/** @defgroup TIM_Break_Input_enable_disable TIM Break Input Enable
671
  * @{
828
  * @{
672
  */
829
  */
673
#define TIM_LOCKLEVEL_OFF          0x00000000U
-
 
674
#define TIM_LOCKLEVEL_1            (TIM_BDTR_LOCK_0)
830
#define TIM_BREAK_ENABLE                   TIM_BDTR_BKE                         /*!< Break input BRK is enabled  */
675
#define TIM_LOCKLEVEL_2            (TIM_BDTR_LOCK_1)
831
#define TIM_BREAK_DISABLE                  0x00000000U                          /*!< Break input BRK is disabled */
676
#define TIM_LOCKLEVEL_3            (TIM_BDTR_LOCK)
-
 
677
/**
832
/**
678
  * @}
833
  * @}
679
  */
834
  */
680
 
835
 
681
/** @defgroup TIM_Break_Input_enable_disable TIM Break Input Enable Disable
836
/** @defgroup TIM_Break_Polarity TIM Break Input Polarity
682
  * @{
837
  * @{
683
  */
838
  */
684
#define TIM_BREAK_ENABLE          (TIM_BDTR_BKE)
839
#define TIM_BREAKPOLARITY_LOW              0x00000000U                          /*!< Break input BRK is active low  */
685
#define TIM_BREAK_DISABLE         0x00000000U
840
#define TIM_BREAKPOLARITY_HIGH             TIM_BDTR_BKP                         /*!< Break input BRK is active high */
686
/**
841
/**
687
  * @}
842
  * @}
688
  */
843
  */
689
 
844
 
690
/** @defgroup TIM_Break_Polarity TIM Break Input Polarity
845
/** @defgroup TIM_AOE_Bit_Set_Reset TIM Automatic Output Enable
691
  * @{
846
  * @{
692
  */
847
  */
693
#define TIM_BREAKPOLARITY_LOW        0x00000000U
848
#define TIM_AUTOMATICOUTPUT_DISABLE        0x00000000U                          /*!< MOE can be set only by software */
694
#define TIM_BREAKPOLARITY_HIGH       (TIM_BDTR_BKP)
849
#define TIM_AUTOMATICOUTPUT_ENABLE         TIM_BDTR_AOE                         /*!< MOE can be set by software or automatically at the next update event
-
 
850
                                                                                    (if none of the break inputs BRK and BRK2 is active) */
695
/**
851
/**
696
  * @}
852
  * @}
697
  */
853
  */
-
 
854
 
698
/** @defgroup TIM_AOE_Bit_Set_Reset TIM Automatic Output Enable
855
/** @defgroup TIM_Master_Mode_Selection TIM Master Mode Selection
699
  * @{
856
  * @{
700
  */
857
  */
-
 
858
#define TIM_TRGO_RESET            0x00000000U                                      /*!< TIMx_EGR.UG bit is used as trigger output (TRGO)              */
701
#define TIM_AUTOMATICOUTPUT_ENABLE           (TIM_BDTR_AOE)
859
#define TIM_TRGO_ENABLE           TIM_CR2_MMS_0                                    /*!< TIMx_CR1.CEN bit is used as trigger output (TRGO)             */
-
 
860
#define TIM_TRGO_UPDATE           TIM_CR2_MMS_1                                    /*!< Update event is used as trigger output (TRGO)                 */
-
 
861
#define TIM_TRGO_OC1              (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)                  /*!< Capture or a compare match 1 is used as trigger output (TRGO) */
-
 
862
#define TIM_TRGO_OC1REF           TIM_CR2_MMS_2                                    /*!< OC1REF signal is used as trigger output (TRGO)                */
-
 
863
#define TIM_TRGO_OC2REF           (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)                  /*!< OC2REF signal is used as trigger output(TRGO)                 */
-
 
864
#define TIM_TRGO_OC3REF           (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)                  /*!< OC3REF signal is used as trigger output(TRGO)                 */
702
#define TIM_AUTOMATICOUTPUT_DISABLE          0x00000000U
865
#define TIM_TRGO_OC4REF           (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)  /*!< OC4REF signal is used as trigger output(TRGO)                 */
703
/**
866
/**
704
  * @}
867
  * @}
705
  */
868
  */
706
 
869
 
707
/** @defgroup TIM_Master_Mode_Selection TIM Master Mode Selection
870
/** @defgroup TIM_Master_Slave_Mode TIM Master/Slave Mode
708
  * @{
871
  * @{
709
  */
872
  */
710
#define TIM_TRGO_RESET            0x00000000U
-
 
711
#define TIM_TRGO_ENABLE           (TIM_CR2_MMS_0)
-
 
712
#define TIM_TRGO_UPDATE           (TIM_CR2_MMS_1)
-
 
713
#define TIM_TRGO_OC1              ((TIM_CR2_MMS_1 | TIM_CR2_MMS_0))
-
 
714
#define TIM_TRGO_OC1REF           (TIM_CR2_MMS_2)
-
 
715
#define TIM_TRGO_OC2REF           ((TIM_CR2_MMS_2 | TIM_CR2_MMS_0))
-
 
716
#define TIM_TRGO_OC3REF           ((TIM_CR2_MMS_2 | TIM_CR2_MMS_1))
873
#define TIM_MASTERSLAVEMODE_ENABLE         TIM_SMCR_MSM                         /*!< No action */
717
#define TIM_TRGO_OC4REF           ((TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0))
874
#define TIM_MASTERSLAVEMODE_DISABLE        0x00000000U                          /*!< Master/slave mode is selected */
718
/**
875
/**
719
  * @}
876
  * @}
720
  */
877
  */
721
 
878
 
722
/** @defgroup TIM_Slave_Mode TIM Slave Mode
879
/** @defgroup TIM_Slave_Mode TIM Slave mode
723
  * @{
880
  * @{
724
  */
881
  */
725
#define TIM_SLAVEMODE_DISABLE              0x00000000U
882
#define TIM_SLAVEMODE_DISABLE                0x00000000U                                        /*!< Slave mode disabled           */
726
#define TIM_SLAVEMODE_RESET                0x00000004U
883
#define TIM_SLAVEMODE_RESET                  TIM_SMCR_SMS_2                                     /*!< Reset Mode                    */
727
#define TIM_SLAVEMODE_GATED                0x00000005U
884
#define TIM_SLAVEMODE_GATED                  (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)                  /*!< Gated Mode                    */
728
#define TIM_SLAVEMODE_TRIGGER              0x00000006U
885
#define TIM_SLAVEMODE_TRIGGER                (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)                  /*!< Trigger Mode                  */
729
#define TIM_SLAVEMODE_EXTERNAL1            0x00000007U
886
#define TIM_SLAVEMODE_EXTERNAL1              (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0) /*!< External Clock Mode 1         */
730
/**
887
/**
731
  * @}
888
  * @}
732
  */
889
  */
733
 
890
 
734
/** @defgroup TIM_Master_Slave_Mode TIM Master Slave Mode
891
/** @defgroup TIM_Output_Compare_and_PWM_modes TIM Output Compare and PWM Modes
735
  * @{
892
  * @{
736
  */
893
  */
737
#define TIM_MASTERSLAVEMODE_ENABLE          0x00000080U
894
#define TIM_OCMODE_TIMING                   0x00000000U                                              /*!< Frozen                                 */
-
 
895
#define TIM_OCMODE_ACTIVE                   TIM_CCMR1_OC1M_0                                         /*!< Set channel to active level on match   */
-
 
896
#define TIM_OCMODE_INACTIVE                 TIM_CCMR1_OC1M_1                                         /*!< Set channel to inactive level on match */
-
 
897
#define TIM_OCMODE_TOGGLE                   (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)                    /*!< Toggle                                 */
-
 
898
#define TIM_OCMODE_PWM1                     (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)                    /*!< PWM mode 1                             */
-
 
899
#define TIM_OCMODE_PWM2                     (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0) /*!< PWM mode 2                             */
738
#define TIM_MASTERSLAVEMODE_DISABLE         0x00000000U
900
#define TIM_OCMODE_FORCED_ACTIVE            (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)                    /*!< Force active level                     */
-
 
901
#define TIM_OCMODE_FORCED_INACTIVE          TIM_CCMR1_OC1M_2                                         /*!< Force inactive level                   */
739
/**
902
/**
740
  * @}
903
  * @}
741
  */
904
  */
742
 
905
 
743
/** @defgroup TIM_Trigger_Selection TIM Trigger Selection
906
/** @defgroup TIM_Trigger_Selection TIM Trigger Selection
744
  * @{
907
  * @{
745
  */
908
  */
746
#define TIM_TS_ITR0                        0x00000000U
909
#define TIM_TS_ITR0          0x00000000U                                                       /*!< Internal Trigger 0 (ITR0)              */
747
#define TIM_TS_ITR1                        0x00000010U
910
#define TIM_TS_ITR1          TIM_SMCR_TS_0                                                     /*!< Internal Trigger 1 (ITR1)              */
748
#define TIM_TS_ITR2                        0x00000020U
911
#define TIM_TS_ITR2          TIM_SMCR_TS_1                                                     /*!< Internal Trigger 2 (ITR2)              */
749
#define TIM_TS_ITR3                        0x00000030U
912
#define TIM_TS_ITR3          (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)                                   /*!< Internal Trigger 3 (ITR3)              */
750
#define TIM_TS_TI1F_ED                     0x00000040U
913
#define TIM_TS_TI1F_ED       TIM_SMCR_TS_2                                                     /*!< TI1 Edge Detector (TI1F_ED)            */
751
#define TIM_TS_TI1FP1                      0x00000050U
914
#define TIM_TS_TI1FP1        (TIM_SMCR_TS_0 | TIM_SMCR_TS_2)                                   /*!< Filtered Timer Input 1 (TI1FP1)        */
752
#define TIM_TS_TI2FP2                      0x00000060U
915
#define TIM_TS_TI2FP2        (TIM_SMCR_TS_1 | TIM_SMCR_TS_2)                                   /*!< Filtered Timer Input 2 (TI2FP2)        */
753
#define TIM_TS_ETRF                        0x00000070U
916
#define TIM_TS_ETRF          (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2)                   /*!< Filtered External Trigger input (ETRF) */
754
#define TIM_TS_NONE                        0x0000FFFFU
917
#define TIM_TS_NONE          0x0000FFFFU                                                       /*!< No trigger selected                    */
755
/**
918
/**
756
  * @}
919
  * @}
757
  */
920
  */
758
 
921
 
759
/** @defgroup TIM_Trigger_Polarity TIM Trigger Polarity
922
/** @defgroup TIM_Trigger_Polarity TIM Trigger Polarity
760
  * @{
923
  * @{
761
  */
924
  */
762
#define TIM_TRIGGERPOLARITY_INVERTED           TIM_ETRPOLARITY_INVERTED      /*!< Polarity for ETRx trigger sources */
925
#define TIM_TRIGGERPOLARITY_INVERTED           TIM_ETRPOLARITY_INVERTED               /*!< Polarity for ETRx trigger sources             */
763
#define TIM_TRIGGERPOLARITY_NONINVERTED        TIM_ETRPOLARITY_NONINVERTED   /*!< Polarity for ETRx trigger sources */
926
#define TIM_TRIGGERPOLARITY_NONINVERTED        TIM_ETRPOLARITY_NONINVERTED            /*!< Polarity for ETRx trigger sources             */
764
#define TIM_TRIGGERPOLARITY_RISING             TIM_INPUTCHANNELPOLARITY_RISING        /*!< Polarity for TIxFPx or TI1_ED trigger sources */
927
#define TIM_TRIGGERPOLARITY_RISING             TIM_INPUTCHANNELPOLARITY_RISING        /*!< Polarity for TIxFPx or TI1_ED trigger sources */
765
#define TIM_TRIGGERPOLARITY_FALLING            TIM_INPUTCHANNELPOLARITY_FALLING       /*!< Polarity for TIxFPx or TI1_ED trigger sources */
928
#define TIM_TRIGGERPOLARITY_FALLING            TIM_INPUTCHANNELPOLARITY_FALLING       /*!< Polarity for TIxFPx or TI1_ED trigger sources */
766
#define TIM_TRIGGERPOLARITY_BOTHEDGE           TIM_INPUTCHANNELPOLARITY_BOTHEDGE      /*!< Polarity for TIxFPx or TI1_ED trigger sources */
929
#define TIM_TRIGGERPOLARITY_BOTHEDGE           TIM_INPUTCHANNELPOLARITY_BOTHEDGE      /*!< Polarity for TIxFPx or TI1_ED trigger sources */
767
/**
930
/**
768
  * @}
931
  * @}
769
  */
932
  */
770
 
933
 
771
/** @defgroup TIM_Trigger_Prescaler TIM Trigger Prescaler
934
/** @defgroup TIM_Trigger_Prescaler TIM Trigger Prescaler
772
  * @{
935
  * @{
773
  */
936
  */
774
#define TIM_TRIGGERPRESCALER_DIV1             TIM_ETRPRESCALER_DIV1     /*!< No prescaler is used */
937
#define TIM_TRIGGERPRESCALER_DIV1             TIM_ETRPRESCALER_DIV1             /*!< No prescaler is used                                                       */
775
#define TIM_TRIGGERPRESCALER_DIV2             TIM_ETRPRESCALER_DIV2     /*!< Prescaler for External ETR Trigger: Capture performed once every 2 events. */
938
#define TIM_TRIGGERPRESCALER_DIV2             TIM_ETRPRESCALER_DIV2             /*!< Prescaler for External ETR Trigger: Capture performed once every 2 events. */
776
#define TIM_TRIGGERPRESCALER_DIV4             TIM_ETRPRESCALER_DIV4     /*!< Prescaler for External ETR Trigger: Capture performed once every 4 events. */
939
#define TIM_TRIGGERPRESCALER_DIV4             TIM_ETRPRESCALER_DIV4             /*!< Prescaler for External ETR Trigger: Capture performed once every 4 events. */
777
#define TIM_TRIGGERPRESCALER_DIV8             TIM_ETRPRESCALER_DIV8     /*!< Prescaler for External ETR Trigger: Capture performed once every 8 events. */
940
#define TIM_TRIGGERPRESCALER_DIV8             TIM_ETRPRESCALER_DIV8             /*!< Prescaler for External ETR Trigger: Capture performed once every 8 events. */
778
/**
941
/**
779
  * @}
942
  * @}
780
  */
943
  */
781
 
944
 
782
/** @defgroup TIM_TI1_Selection TIM TI1 Input Selection
945
/** @defgroup TIM_TI1_Selection TIM TI1 Input Selection
783
  * @{
946
  * @{
784
  */
947
  */
785
#define TIM_TI1SELECTION_CH1                0x00000000U
948
#define TIM_TI1SELECTION_CH1               0x00000000U                          /*!< The TIMx_CH1 pin is connected to TI1 input */
786
#define TIM_TI1SELECTION_XORCOMBINATION     (TIM_CR2_TI1S)
949
#define TIM_TI1SELECTION_XORCOMBINATION    TIM_CR2_TI1S                         /*!< The TIMx_CH1, CH2 and CH3 pins are connected to the TI1 input (XOR combination) */
787
/**
-
 
788
  * @}
-
 
789
  */
-
 
790
 
-
 
791
/** @defgroup TIM_DMA_Base_address TIM DMA Base Address
-
 
792
  * @{
-
 
793
  */
-
 
794
#define TIM_DMABASE_CR1                    0x00000000U
-
 
795
#define TIM_DMABASE_CR2                    0x00000001U
-
 
796
#define TIM_DMABASE_SMCR                   0x00000002U
-
 
797
#define TIM_DMABASE_DIER                   0x00000003U
-
 
798
#define TIM_DMABASE_SR                     0x00000004U
-
 
799
#define TIM_DMABASE_EGR                    0x00000005U
-
 
800
#define TIM_DMABASE_CCMR1                  0x00000006U
-
 
801
#define TIM_DMABASE_CCMR2                  0x00000007U
-
 
802
#define TIM_DMABASE_CCER                   0x00000008U
-
 
803
#define TIM_DMABASE_CNT                    0x00000009U
-
 
804
#define TIM_DMABASE_PSC                    0x0000000AU
-
 
805
#define TIM_DMABASE_ARR                    0x0000000BU
-
 
806
#define TIM_DMABASE_RCR                    0x0000000CU
-
 
807
#define TIM_DMABASE_CCR1                   0x0000000DU
-
 
808
#define TIM_DMABASE_CCR2                   0x0000000EU
-
 
809
#define TIM_DMABASE_CCR3                   0x0000000FU
-
 
810
#define TIM_DMABASE_CCR4                   0x00000010U
-
 
811
#define TIM_DMABASE_BDTR                   0x00000011U
-
 
812
#define TIM_DMABASE_DCR                    0x00000012U
-
 
813
/**
950
/**
814
  * @}
951
  * @}
815
  */
952
  */
816
 
953
 
817
/** @defgroup TIM_DMA_Burst_Length TIM DMA Burst Length
954
/** @defgroup TIM_DMA_Burst_Length TIM DMA Burst Length
818
  * @{
955
  * @{
819
  */
956
  */
820
#define TIM_DMABURSTLENGTH_1TRANSFER           0x00000000U
957
#define TIM_DMABURSTLENGTH_1TRANSFER       0x00000000U                          /*!< The transfer is done to 1 register starting trom TIMx_CR1 + TIMx_DCR.DBA   */
821
#define TIM_DMABURSTLENGTH_2TRANSFERS          0x00000100U
958
#define TIM_DMABURSTLENGTH_2TRANSFERS      0x00000100U                          /*!< The transfer is done to 2 registers starting trom TIMx_CR1 + TIMx_DCR.DBA  */
822
#define TIM_DMABURSTLENGTH_3TRANSFERS          0x00000200U
959
#define TIM_DMABURSTLENGTH_3TRANSFERS      0x00000200U                          /*!< The transfer is done to 3 registers starting trom TIMx_CR1 + TIMx_DCR.DBA  */
823
#define TIM_DMABURSTLENGTH_4TRANSFERS          0x00000300U
960
#define TIM_DMABURSTLENGTH_4TRANSFERS      0x00000300U                          /*!< The transfer is done to 4 registers starting trom TIMx_CR1 + TIMx_DCR.DBA  */
824
#define TIM_DMABURSTLENGTH_5TRANSFERS          0x00000400U
961
#define TIM_DMABURSTLENGTH_5TRANSFERS      0x00000400U                          /*!< The transfer is done to 5 registers starting trom TIMx_CR1 + TIMx_DCR.DBA  */
825
#define TIM_DMABURSTLENGTH_6TRANSFERS          0x00000500U
962
#define TIM_DMABURSTLENGTH_6TRANSFERS      0x00000500U                          /*!< The transfer is done to 6 registers starting trom TIMx_CR1 + TIMx_DCR.DBA  */
826
#define TIM_DMABURSTLENGTH_7TRANSFERS          0x00000600U
963
#define TIM_DMABURSTLENGTH_7TRANSFERS      0x00000600U                          /*!< The transfer is done to 7 registers starting trom TIMx_CR1 + TIMx_DCR.DBA  */
827
#define TIM_DMABURSTLENGTH_8TRANSFERS          0x00000700U
964
#define TIM_DMABURSTLENGTH_8TRANSFERS      0x00000700U                          /*!< The transfer is done to 8 registers starting trom TIMx_CR1 + TIMx_DCR.DBA  */
828
#define TIM_DMABURSTLENGTH_9TRANSFERS          0x00000800U
965
#define TIM_DMABURSTLENGTH_9TRANSFERS      0x00000800U                          /*!< The transfer is done to 9 registers starting trom TIMx_CR1 + TIMx_DCR.DBA  */
829
#define TIM_DMABURSTLENGTH_10TRANSFERS         0x00000900U
966
#define TIM_DMABURSTLENGTH_10TRANSFERS     0x00000900U                          /*!< The transfer is done to 10 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */
830
#define TIM_DMABURSTLENGTH_11TRANSFERS         0x00000A00U
967
#define TIM_DMABURSTLENGTH_11TRANSFERS     0x00000A00U                          /*!< The transfer is done to 11 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */
831
#define TIM_DMABURSTLENGTH_12TRANSFERS         0x00000B00U
968
#define TIM_DMABURSTLENGTH_12TRANSFERS     0x00000B00U                          /*!< The transfer is done to 12 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */
832
#define TIM_DMABURSTLENGTH_13TRANSFERS         0x00000C00U
969
#define TIM_DMABURSTLENGTH_13TRANSFERS     0x00000C00U                          /*!< The transfer is done to 13 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */
833
#define TIM_DMABURSTLENGTH_14TRANSFERS         0x00000D00U
970
#define TIM_DMABURSTLENGTH_14TRANSFERS     0x00000D00U                          /*!< The transfer is done to 14 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */
834
#define TIM_DMABURSTLENGTH_15TRANSFERS         0x00000E00U
971
#define TIM_DMABURSTLENGTH_15TRANSFERS     0x00000E00U                          /*!< The transfer is done to 15 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */
835
#define TIM_DMABURSTLENGTH_16TRANSFERS         0x00000F00U
972
#define TIM_DMABURSTLENGTH_16TRANSFERS     0x00000F00U                          /*!< The transfer is done to 16 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */
836
#define TIM_DMABURSTLENGTH_17TRANSFERS         0x00001000U
973
#define TIM_DMABURSTLENGTH_17TRANSFERS     0x00001000U                          /*!< The transfer is done to 17 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */
837
#define TIM_DMABURSTLENGTH_18TRANSFERS         0x00001100U
974
#define TIM_DMABURSTLENGTH_18TRANSFERS     0x00001100U                          /*!< The transfer is done to 18 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */
838
/**
975
/**
839
  * @}
976
  * @}
840
  */
977
  */
841
 
978
 
842
/** @defgroup TIM_DMA_Handle_index TIM DMA Handle Index
979
/** @defgroup DMA_Handle_index TIM DMA Handle Index
843
  * @{
980
  * @{
844
  */
981
  */
845
#define TIM_DMA_ID_UPDATE                ((uint16_t)0x0)       /*!< Index of the DMA handle used for Update DMA requests */
982
#define TIM_DMA_ID_UPDATE                ((uint16_t) 0x0000)       /*!< Index of the DMA handle used for Update DMA requests */
846
#define TIM_DMA_ID_CC1                   ((uint16_t)0x1)       /*!< Index of the DMA handle used for Capture/Compare 1 DMA requests */
983
#define TIM_DMA_ID_CC1                   ((uint16_t) 0x0001)       /*!< Index of the DMA handle used for Capture/Compare 1 DMA requests */
847
#define TIM_DMA_ID_CC2                   ((uint16_t)0x2)       /*!< Index of the DMA handle used for Capture/Compare 2 DMA requests */
984
#define TIM_DMA_ID_CC2                   ((uint16_t) 0x0002)       /*!< Index of the DMA handle used for Capture/Compare 2 DMA requests */
848
#define TIM_DMA_ID_CC3                   ((uint16_t)0x3)       /*!< Index of the DMA handle used for Capture/Compare 3 DMA requests */
985
#define TIM_DMA_ID_CC3                   ((uint16_t) 0x0003)       /*!< Index of the DMA handle used for Capture/Compare 3 DMA requests */
849
#define TIM_DMA_ID_CC4                   ((uint16_t)0x4)       /*!< Index of the DMA handle used for Capture/Compare 4 DMA requests */
986
#define TIM_DMA_ID_CC4                   ((uint16_t) 0x0004)       /*!< Index of the DMA handle used for Capture/Compare 4 DMA requests */
850
#define TIM_DMA_ID_COMMUTATION           ((uint16_t)0x5)       /*!< Index of the DMA handle used for Commutation DMA requests */
987
#define TIM_DMA_ID_COMMUTATION           ((uint16_t) 0x0005)       /*!< Index of the DMA handle used for Commutation DMA requests */
851
#define TIM_DMA_ID_TRIGGER               ((uint16_t)0x6)       /*!< Index of the DMA handle used for Trigger DMA requests */
988
#define TIM_DMA_ID_TRIGGER               ((uint16_t) 0x0006)       /*!< Index of the DMA handle used for Trigger DMA requests */
852
/**
989
/**
853
  * @}
990
  * @}
854
  */
991
  */
855
 
992
 
856
/** @defgroup TIM_Channel_CC_State TIM Capture/Compare Channel State
993
/** @defgroup Channel_CC_State TIM Capture/Compare Channel State
857
  * @{
994
  * @{
858
  */
995
  */
859
#define TIM_CCx_ENABLE                   0x00000001U
996
#define TIM_CCx_ENABLE                   0x00000001U                            /*!< Input or output channel is enabled */
860
#define TIM_CCx_DISABLE                  0x00000000U
997
#define TIM_CCx_DISABLE                  0x00000000U                            /*!< Input or output channel is disabled */
861
#define TIM_CCxN_ENABLE                  0x00000004U
998
#define TIM_CCxN_ENABLE                  0x00000004U                            /*!< Complementary output channel is enabled */
862
#define TIM_CCxN_DISABLE                 0x00000000U
999
#define TIM_CCxN_DISABLE                 0x00000000U                            /*!< Complementary output channel is enabled */
863
/**
1000
/**
864
  * @}
1001
  * @}
865
  */
1002
  */
866
 
1003
 
867
/**
1004
/**
868
  * @}
1005
  * @}
869
  */
1006
  */
870
 
-
 
871
/* Private Constants -----------------------------------------------------------*/
1007
/* End of exported constants -------------------------------------------------*/
872
/** @defgroup TIM_Private_Constants TIM Private Constants
-
 
873
  * @{
-
 
874
  */
-
 
875
 
-
 
876
/* The counter of a timer instance is disabled only if all the CCx and CCxN
-
 
877
   channels have been disabled */
-
 
878
#define TIM_CCER_CCxE_MASK ((uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E))
-
 
879
#define TIM_CCER_CCxNE_MASK ((uint32_t)(TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE))
-
 
880
 
-
 
881
/**
-
 
882
  * @}
-
 
883
  */
-
 
884
 
-
 
885
/* Private Macros -----------------------------------------------------------*/
-
 
886
/** @defgroup TIM_Private_Macros TIM Private Macros
-
 
887
 * @{
-
 
888
 */
-
 
889
 
-
 
890
#define IS_TIM_COUNTER_MODE(MODE) (((MODE) == TIM_COUNTERMODE_UP)              || \
-
 
891
                                   ((MODE) == TIM_COUNTERMODE_DOWN)            || \
-
 
892
                                   ((MODE) == TIM_COUNTERMODE_CENTERALIGNED1)  || \
-
 
893
                                   ((MODE) == TIM_COUNTERMODE_CENTERALIGNED2)  || \
-
 
894
                                   ((MODE) == TIM_COUNTERMODE_CENTERALIGNED3))
-
 
895
 
-
 
896
#define IS_TIM_CLOCKDIVISION_DIV(DIV) (((DIV) == TIM_CLOCKDIVISION_DIV1) || \
-
 
897
                                       ((DIV) == TIM_CLOCKDIVISION_DIV2) || \
-
 
898
                                       ((DIV) == TIM_CLOCKDIVISION_DIV4))
-
 
899
 
-
 
900
#define IS_TIM_AUTORELOAD_PRELOAD(PRELOAD) (((PRELOAD) == TIM_AUTORELOAD_PRELOAD_DISABLE) || \
-
 
901
                                            ((PRELOAD) == TIM_AUTORELOAD_PRELOAD_ENABLE))
-
 
902
 
-
 
903
#define IS_TIM_PWM_MODE(MODE) (((MODE) == TIM_OCMODE_PWM1) || \
-
 
904
                               ((MODE) == TIM_OCMODE_PWM2))
-
 
905
                             
-
 
906
#define IS_TIM_OC_MODE(MODE) (((MODE) == TIM_OCMODE_TIMING)       || \
-
 
907
                          ((MODE) == TIM_OCMODE_ACTIVE)           || \
-
 
908
                          ((MODE) == TIM_OCMODE_INACTIVE)         || \
-
 
909
                          ((MODE) == TIM_OCMODE_TOGGLE)           || \
-
 
910
                          ((MODE) == TIM_OCMODE_FORCED_ACTIVE)    || \
-
 
911
                          ((MODE) == TIM_OCMODE_FORCED_INACTIVE))
-
 
912
 
-
 
913
#define IS_TIM_FAST_STATE(STATE) (((STATE) == TIM_OCFAST_DISABLE) || \
-
 
914
                                  ((STATE) == TIM_OCFAST_ENABLE))
-
 
915
 
-
 
916
#define IS_TIM_OC_POLARITY(POLARITY) (((POLARITY) == TIM_OCPOLARITY_HIGH) || \
-
 
917
                                      ((POLARITY) == TIM_OCPOLARITY_LOW))
-
 
918
 
-
 
919
#define IS_TIM_OCN_POLARITY(POLARITY) (((POLARITY) == TIM_OCNPOLARITY_HIGH) || \
-
 
920
                                       ((POLARITY) == TIM_OCNPOLARITY_LOW))
-
 
921
 
-
 
922
#define IS_TIM_OCIDLE_STATE(STATE) (((STATE) == TIM_OCIDLESTATE_SET) || \
-
 
923
                                    ((STATE) == TIM_OCIDLESTATE_RESET))
-
 
924
 
-
 
925
#define IS_TIM_OCNIDLE_STATE(STATE) (((STATE) == TIM_OCNIDLESTATE_SET) || \
-
 
926
                                     ((STATE) == TIM_OCNIDLESTATE_RESET))
-
 
927
 
-
 
928
#define IS_TIM_CHANNELS(CHANNEL) (((CHANNEL) == TIM_CHANNEL_1) || \
-
 
929
                                  ((CHANNEL) == TIM_CHANNEL_2) || \
-
 
930
                                  ((CHANNEL) == TIM_CHANNEL_3) || \
-
 
931
                                  ((CHANNEL) == TIM_CHANNEL_4) || \
-
 
932
                                  ((CHANNEL) == TIM_CHANNEL_ALL))
-
 
933
 
-
 
934
#define IS_TIM_OPM_CHANNELS(CHANNEL) (((CHANNEL) == TIM_CHANNEL_1) || \
-
 
935
                                      ((CHANNEL) == TIM_CHANNEL_2))
-
 
936
 
-
 
937
#define IS_TIM_COMPLEMENTARY_CHANNELS(CHANNEL) (((CHANNEL) == TIM_CHANNEL_1) || \
-
 
938
                                                ((CHANNEL) == TIM_CHANNEL_2) || \
-
 
939
                                                ((CHANNEL) == TIM_CHANNEL_3))
-
 
940
 
-
 
941
#define IS_TIM_IC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ICPOLARITY_RISING)   || \
-
 
942
                                          ((__POLARITY__) == TIM_ICPOLARITY_FALLING)  || \
-
 
943
                                          ((__POLARITY__) == TIM_ICPOLARITY_BOTHEDGE))
-
 
944
 
-
 
945
#define IS_TIM_IC_SELECTION(SELECTION) (((SELECTION) == TIM_ICSELECTION_DIRECTTI)   || \
-
 
946
                                        ((SELECTION) == TIM_ICSELECTION_INDIRECTTI) || \
-
 
947
                                        ((SELECTION) == TIM_ICSELECTION_TRC))
-
 
948
 
-
 
949
#define IS_TIM_IC_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ICPSC_DIV1) || \
-
 
950
                                        ((PRESCALER) == TIM_ICPSC_DIV2) || \
-
 
951
                                        ((PRESCALER) == TIM_ICPSC_DIV4) || \
-
 
952
                                        ((PRESCALER) == TIM_ICPSC_DIV8))
-
 
953
 
-
 
954
#define IS_TIM_OPM_MODE(MODE) (((MODE) == TIM_OPMODE_SINGLE) || \
-
 
955
                               ((MODE) == TIM_OPMODE_REPETITIVE))
-
 
956
 
-
 
957
#define IS_TIM_ENCODER_MODE(MODE) (((MODE) == TIM_ENCODERMODE_TI1) || \
-
 
958
                                   ((MODE) == TIM_ENCODERMODE_TI2) || \
-
 
959
                                   ((MODE) == TIM_ENCODERMODE_TI12))   
-
 
960
 
-
 
961
#define IS_TIM_DMA_SOURCE(SOURCE) ((((SOURCE) & 0xFFFF80FFU) == 0x00000000U) && ((SOURCE) != 0x00000000U))
-
 
962
 
-
 
963
#define IS_TIM_EVENT_SOURCE(SOURCE) ((((SOURCE) & 0xFFFFFF00U) == 0x00000000U) && ((SOURCE) != 0x00000000U))
-
 
964
 
-
 
965
#define IS_TIM_CLOCKSOURCE(CLOCK) (((CLOCK) == TIM_CLOCKSOURCE_INTERNAL) || \
-
 
966
                                   ((CLOCK) == TIM_CLOCKSOURCE_ETRMODE2) || \
-
 
967
                                   ((CLOCK) == TIM_CLOCKSOURCE_ITR0)     || \
-
 
968
                                   ((CLOCK) == TIM_CLOCKSOURCE_ITR1)     || \
-
 
969
                                   ((CLOCK) == TIM_CLOCKSOURCE_ITR2)     || \
-
 
970
                                   ((CLOCK) == TIM_CLOCKSOURCE_ITR3)     || \
-
 
971
                                   ((CLOCK) == TIM_CLOCKSOURCE_TI1ED)    || \
-
 
972
                                   ((CLOCK) == TIM_CLOCKSOURCE_TI1)      || \
-
 
973
                                   ((CLOCK) == TIM_CLOCKSOURCE_TI2)      || \
-
 
974
                                   ((CLOCK) == TIM_CLOCKSOURCE_ETRMODE1))
-
 
975
 
-
 
976
#define IS_TIM_CLOCKPOLARITY(POLARITY) (((POLARITY) == TIM_CLOCKPOLARITY_INVERTED)    || \
-
 
977
                                        ((POLARITY) == TIM_CLOCKPOLARITY_NONINVERTED) || \
-
 
978
                                        ((POLARITY) == TIM_CLOCKPOLARITY_RISING)      || \
-
 
979
                                        ((POLARITY) == TIM_CLOCKPOLARITY_FALLING)     || \
-
 
980
                                        ((POLARITY) == TIM_CLOCKPOLARITY_BOTHEDGE))
-
 
981
 
-
 
982
#define IS_TIM_CLOCKPRESCALER(PRESCALER) (((PRESCALER) == TIM_CLOCKPRESCALER_DIV1) || \
-
 
983
                                          ((PRESCALER) == TIM_CLOCKPRESCALER_DIV2) || \
-
 
984
                                          ((PRESCALER) == TIM_CLOCKPRESCALER_DIV4) || \
-
 
985
                                          ((PRESCALER) == TIM_CLOCKPRESCALER_DIV8)) 
-
 
986
 
-
 
987
#define IS_TIM_CLOCKFILTER(ICFILTER)       ((ICFILTER) <= 0x0FU) 
-
 
988
 
-
 
989
#define IS_TIM_CLEARINPUT_SOURCE(SOURCE) (((SOURCE) == TIM_CLEARINPUTSOURCE_ETR)      || \
-
 
990
                                          ((SOURCE) == TIM_CLEARINPUTSOURCE_NONE))
-
 
991
 
-
 
992
#define IS_TIM_CLEARINPUT_POLARITY(POLARITY) (((POLARITY) == TIM_CLEARINPUTPOLARITY_INVERTED) || \
-
 
993
                                              ((POLARITY) == TIM_CLEARINPUTPOLARITY_NONINVERTED))
-
 
994
 
-
 
995
#define IS_TIM_CLEARINPUT_PRESCALER(PRESCALER)   (((PRESCALER) == TIM_CLEARINPUTPRESCALER_DIV1) || \
-
 
996
                                                  ((PRESCALER) == TIM_CLEARINPUTPRESCALER_DIV2) || \
-
 
997
                                                  ((PRESCALER) == TIM_CLEARINPUTPRESCALER_DIV4) || \
-
 
998
                                                  ((PRESCALER) == TIM_CLEARINPUTPRESCALER_DIV8))
-
 
999
 
-
 
1000
#define IS_TIM_CLEARINPUT_FILTER(ICFILTER) ((ICFILTER) <= 0x0FU)
-
 
1001
 
-
 
1002
#define IS_TIM_OSSR_STATE(STATE) (((STATE) == TIM_OSSR_ENABLE) || \
-
 
1003
                                  ((STATE) == TIM_OSSR_DISABLE))
-
 
1004
 
-
 
1005
#define IS_TIM_OSSI_STATE(STATE) (((STATE) == TIM_OSSI_ENABLE) || \
-
 
1006
                                  ((STATE) == TIM_OSSI_DISABLE))
-
 
1007
 
-
 
1008
#define IS_TIM_LOCK_LEVEL(LEVEL) (((LEVEL) == TIM_LOCKLEVEL_OFF) || \
-
 
1009
                                  ((LEVEL) == TIM_LOCKLEVEL_1)   || \
-
 
1010
                                  ((LEVEL) == TIM_LOCKLEVEL_2)   || \
-
 
1011
                                  ((LEVEL) == TIM_LOCKLEVEL_3))
-
 
1012
 
-
 
1013
#define IS_TIM_BREAK_STATE(STATE) (((STATE) == TIM_BREAK_ENABLE) || \
-
 
1014
                                   ((STATE) == TIM_BREAK_DISABLE))
-
 
1015
 
-
 
1016
#define IS_TIM_BREAK_POLARITY(POLARITY) (((POLARITY) == TIM_BREAKPOLARITY_LOW) || \
-
 
1017
                                         ((POLARITY) == TIM_BREAKPOLARITY_HIGH))
-
 
1018
 
-
 
1019
#define IS_TIM_AUTOMATIC_OUTPUT_STATE(STATE) (((STATE) == TIM_AUTOMATICOUTPUT_ENABLE) || \
-
 
1020
                                              ((STATE) == TIM_AUTOMATICOUTPUT_DISABLE))
-
 
1021
 
-
 
1022
#define IS_TIM_TRGO_SOURCE(SOURCE) (((SOURCE) == TIM_TRGO_RESET)  || \
-
 
1023
                                    ((SOURCE) == TIM_TRGO_ENABLE) || \
-
 
1024
                                    ((SOURCE) == TIM_TRGO_UPDATE) || \
-
 
1025
                                    ((SOURCE) == TIM_TRGO_OC1)    || \
-
 
1026
                                    ((SOURCE) == TIM_TRGO_OC1REF) || \
-
 
1027
                                    ((SOURCE) == TIM_TRGO_OC2REF) || \
-
 
1028
                                    ((SOURCE) == TIM_TRGO_OC3REF) || \
-
 
1029
                                    ((SOURCE) == TIM_TRGO_OC4REF))
-
 
1030
 
-
 
1031
#define IS_TIM_SLAVE_MODE(MODE) (((MODE) == TIM_SLAVEMODE_DISABLE) || \
-
 
1032
                                 ((MODE) == TIM_SLAVEMODE_GATED)   || \
-
 
1033
                                 ((MODE) == TIM_SLAVEMODE_RESET)   || \
-
 
1034
                                 ((MODE) == TIM_SLAVEMODE_TRIGGER) || \
-
 
1035
                                 ((MODE) == TIM_SLAVEMODE_EXTERNAL1))
-
 
1036
 
-
 
1037
#define IS_TIM_MSM_STATE(STATE) (((STATE) == TIM_MASTERSLAVEMODE_ENABLE) || \
-
 
1038
                                 ((STATE) == TIM_MASTERSLAVEMODE_DISABLE))
-
 
1039
 
-
 
1040
#define IS_TIM_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0)    || \
-
 
1041
                                             ((SELECTION) == TIM_TS_ITR1)    || \
-
 
1042
                                             ((SELECTION) == TIM_TS_ITR2)    || \
-
 
1043
                                             ((SELECTION) == TIM_TS_ITR3)    || \
-
 
1044
                                             ((SELECTION) == TIM_TS_TI1F_ED) || \
-
 
1045
                                             ((SELECTION) == TIM_TS_TI1FP1)  || \
-
 
1046
                                             ((SELECTION) == TIM_TS_TI2FP2)  || \
-
 
1047
                                             ((SELECTION) == TIM_TS_ETRF))
-
 
1048
 
-
 
1049
#define IS_TIM_INTERNAL_TRIGGEREVENT_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \
-
 
1050
                                                           ((SELECTION) == TIM_TS_ITR1) || \
-
 
1051
                                                           ((SELECTION) == TIM_TS_ITR2) || \
-
 
1052
                                                           ((SELECTION) == TIM_TS_ITR3) || \
-
 
1053
                                                           ((SELECTION) == TIM_TS_NONE))
-
 
1054
 
-
 
1055
#define IS_TIM_TRIGGERPOLARITY(POLARITY)     (((POLARITY) == TIM_TRIGGERPOLARITY_INVERTED   ) || \
-
 
1056
                                              ((POLARITY) == TIM_TRIGGERPOLARITY_NONINVERTED) || \
-
 
1057
                                              ((POLARITY) == TIM_TRIGGERPOLARITY_RISING     ) || \
-
 
1058
                                              ((POLARITY) == TIM_TRIGGERPOLARITY_FALLING    ) || \
-
 
1059
                                              ((POLARITY) == TIM_TRIGGERPOLARITY_BOTHEDGE   ))
-
 
1060
 
-
 
1061
#define IS_TIM_TRIGGERPRESCALER(PRESCALER)  (((PRESCALER) == TIM_TRIGGERPRESCALER_DIV1) || \
-
 
1062
                                             ((PRESCALER) == TIM_TRIGGERPRESCALER_DIV2) || \
-
 
1063
                                             ((PRESCALER) == TIM_TRIGGERPRESCALER_DIV4) || \
-
 
1064
                                             ((PRESCALER) == TIM_TRIGGERPRESCALER_DIV8))
-
 
1065
 
-
 
1066
#define IS_TIM_TRIGGERFILTER(ICFILTER)     ((ICFILTER) <= 0x0FU)
-
 
1067
 
-
 
1068
#define IS_TIM_TI1SELECTION(TI1SELECTION)   (((TI1SELECTION) == TIM_TI1SELECTION_CH1)            || \
-
 
1069
                                             ((TI1SELECTION) == TIM_TI1SELECTION_XORCOMBINATION))
-
 
1070
 
-
 
1071
#define IS_TIM_DMA_BASE(BASE) (((BASE) == TIM_DMABASE_CR1)   || \
-
 
1072
                               ((BASE) == TIM_DMABASE_CR2)   || \
-
 
1073
                               ((BASE) == TIM_DMABASE_SMCR)  || \
-
 
1074
                               ((BASE) == TIM_DMABASE_DIER)  || \
-
 
1075
                               ((BASE) == TIM_DMABASE_SR)    || \
-
 
1076
                               ((BASE) == TIM_DMABASE_EGR)   || \
-
 
1077
                               ((BASE) == TIM_DMABASE_CCMR1) || \
-
 
1078
                               ((BASE) == TIM_DMABASE_CCMR2) || \
-
 
1079
                               ((BASE) == TIM_DMABASE_CCER)  || \
-
 
1080
                               ((BASE) == TIM_DMABASE_CNT)   || \
-
 
1081
                               ((BASE) == TIM_DMABASE_PSC)   || \
-
 
1082
                               ((BASE) == TIM_DMABASE_ARR)   || \
-
 
1083
                               ((BASE) == TIM_DMABASE_RCR)   || \
-
 
1084
                               ((BASE) == TIM_DMABASE_CCR1)  || \
-
 
1085
                               ((BASE) == TIM_DMABASE_CCR2)  || \
-
 
1086
                               ((BASE) == TIM_DMABASE_CCR3)  || \
-
 
1087
                               ((BASE) == TIM_DMABASE_CCR4)  || \
-
 
1088
                               ((BASE) == TIM_DMABASE_BDTR)  || \
-
 
1089
                               ((BASE) == TIM_DMABASE_DCR))
-
 
1090
 
-
 
1091
#define IS_TIM_DMA_LENGTH(LENGTH) (((LENGTH) == TIM_DMABURSTLENGTH_1TRANSFER)   || \
-
 
1092
                                   ((LENGTH) == TIM_DMABURSTLENGTH_2TRANSFERS)  || \
-
 
1093
                                   ((LENGTH) == TIM_DMABURSTLENGTH_3TRANSFERS)  || \
-
 
1094
                                   ((LENGTH) == TIM_DMABURSTLENGTH_4TRANSFERS)  || \
-
 
1095
                                   ((LENGTH) == TIM_DMABURSTLENGTH_5TRANSFERS)  || \
-
 
1096
                                   ((LENGTH) == TIM_DMABURSTLENGTH_6TRANSFERS)  || \
-
 
1097
                                   ((LENGTH) == TIM_DMABURSTLENGTH_7TRANSFERS)  || \
-
 
1098
                                   ((LENGTH) == TIM_DMABURSTLENGTH_8TRANSFERS)  || \
-
 
1099
                                   ((LENGTH) == TIM_DMABURSTLENGTH_9TRANSFERS)  || \
-
 
1100
                                   ((LENGTH) == TIM_DMABURSTLENGTH_10TRANSFERS) || \
-
 
1101
                                   ((LENGTH) == TIM_DMABURSTLENGTH_11TRANSFERS) || \
-
 
1102
                                   ((LENGTH) == TIM_DMABURSTLENGTH_12TRANSFERS) || \
-
 
1103
                                   ((LENGTH) == TIM_DMABURSTLENGTH_13TRANSFERS) || \
-
 
1104
                                   ((LENGTH) == TIM_DMABURSTLENGTH_14TRANSFERS) || \
-
 
1105
                                   ((LENGTH) == TIM_DMABURSTLENGTH_15TRANSFERS) || \
-
 
1106
                                   ((LENGTH) == TIM_DMABURSTLENGTH_16TRANSFERS) || \
-
 
1107
                                   ((LENGTH) == TIM_DMABURSTLENGTH_17TRANSFERS) || \
-
 
1108
                                   ((LENGTH) == TIM_DMABURSTLENGTH_18TRANSFERS))
-
 
1109
 
-
 
1110
#define IS_TIM_IC_FILTER(ICFILTER) ((ICFILTER) <= 0x0FU)
-
 
1111
 
-
 
1112
/** @brief Set TIM IC prescaler
-
 
1113
  * @param  __HANDLE__: TIM handle
-
 
1114
  * @param  __CHANNEL__: specifies TIM Channel
-
 
1115
  * @param  __ICPSC__: specifies the prescaler value.
-
 
1116
  * @retval None
-
 
1117
  */
-
 
1118
#define TIM_SET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__, __ICPSC__) \
-
 
1119
(((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= (__ICPSC__)) :\
-
 
1120
 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= ((__ICPSC__) << 8U)) :\
-
 
1121
 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= (__ICPSC__)) :\
-
 
1122
 ((__HANDLE__)->Instance->CCMR2 |= ((__ICPSC__) << 8U)))
-
 
1123
 
-
 
1124
/** @brief Reset TIM IC prescaler
-
 
1125
  * @param  __HANDLE__: TIM handle
-
 
1126
  * @param  __CHANNEL__: specifies TIM Channel
-
 
1127
  * @retval None
-
 
1128
  */
-
 
1129
#define TIM_RESET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__) \
-
 
1130
(((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC) :\
-
 
1131
 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC) :\
-
 
1132
 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC) :\
-
 
1133
 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC))
-
 
1134
 
-
 
1135
 
-
 
1136
/** @brief Set TIM IC polarity
-
 
1137
  * @param  __HANDLE__: TIM handle
-
 
1138
  * @param  __CHANNEL__: specifies TIM Channel
-
 
1139
  * @param  __POLARITY__: specifies TIM Channel Polarity
-
 
1140
  * @retval None
-
 
1141
  */
-
 
1142
#define TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
-
 
1143
(((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER |= (__POLARITY__)) :\
-
 
1144
 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 4U)) :\
-
 
1145
 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 8U)) :\
-
 
1146
 ((__HANDLE__)->Instance->CCER |= (((__POLARITY__) << 12U) & TIM_CCER_CC4P)))
-
 
1147
 
-
 
1148
/** @brief Reset TIM IC polarity
-
 
1149
  * @param  __HANDLE__: TIM handle
-
 
1150
  * @param  __CHANNEL__: specifies TIM Channel
-
 
1151
  * @retval None
-
 
1152
  */
-
 
1153
#define TIM_RESET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__) \
-
 
1154
(((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER &= (uint16_t)~(TIM_CCER_CC1P | TIM_CCER_CC1NP)) :\
-
 
1155
 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER &= (uint16_t)~(TIM_CCER_CC2P | TIM_CCER_CC2NP)) :\
-
 
1156
 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER &= (uint16_t)~(TIM_CCER_CC3P | TIM_CCER_CC3NP)) :\
-
 
1157
 ((__HANDLE__)->Instance->CCER &= (uint16_t)~TIM_CCER_CC4P))
-
 
1158
 
-
 
1159
/**
-
 
1160
  * @}
-
 
1161
  */
-
 
1162
 
-
 
1163
/* Private Functions --------------------------------------------------------*/
-
 
1164
/** @addtogroup TIM_Private_Functions
-
 
1165
 * @{
-
 
1166
 */
-
 
1167
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure);
-
 
1168
void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter);
-
 
1169
void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config);
-
 
1170
void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma);
-
 
1171
void TIM_DMAError(DMA_HandleTypeDef *hdma);
-
 
1172
void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma);
-
 
1173
void TIM_CCxChannelCmd(TIM_TypeDef* TIMx, uint32_t Channel, uint32_t ChannelState);
-
 
1174
/**
-
 
1175
  * @}
-
 
1176
  */
-
 
1177
 
1008
 
1178
/* Exported macros -----------------------------------------------------------*/
1009
/* Exported macros -----------------------------------------------------------*/
1179
/** @defgroup TIM_Exported_Macros TIM Exported Macros
1010
/** @defgroup TIM_Exported_Macros TIM Exported Macros
1180
  * @{
1011
  * @{
1181
  */
1012
  */
1182
 
1013
 
1183
/** @brief  Reset TIM handle state
1014
/** @brief  Reset TIM handle state.
1184
  * @param  __HANDLE__: TIM handle.
1015
  * @param  __HANDLE__ TIM handle.
1185
  * @retval None
1016
  * @retval None
1186
  */
1017
  */
-
 
1018
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1187
#define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_TIM_STATE_RESET)
1019
#define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do {                                                               \
-
 
1020
                                                      (__HANDLE__)->State            = HAL_TIM_STATE_RESET;         \
-
 
1021
                                                      (__HANDLE__)->ChannelState[0]  = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1022
                                                      (__HANDLE__)->ChannelState[1]  = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1023
                                                      (__HANDLE__)->ChannelState[2]  = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1024
                                                      (__HANDLE__)->ChannelState[3]  = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1025
                                                      (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1026
                                                      (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1027
                                                      (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1028
                                                      (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1029
                                                      (__HANDLE__)->DMABurstState    = HAL_DMA_BURST_STATE_RESET;   \
-
 
1030
                                                      (__HANDLE__)->Base_MspInitCallback         = NULL;            \
-
 
1031
                                                      (__HANDLE__)->Base_MspDeInitCallback       = NULL;            \
-
 
1032
                                                      (__HANDLE__)->IC_MspInitCallback           = NULL;            \
-
 
1033
                                                      (__HANDLE__)->IC_MspDeInitCallback         = NULL;            \
-
 
1034
                                                      (__HANDLE__)->OC_MspInitCallback           = NULL;            \
-
 
1035
                                                      (__HANDLE__)->OC_MspDeInitCallback         = NULL;            \
-
 
1036
                                                      (__HANDLE__)->PWM_MspInitCallback          = NULL;            \
-
 
1037
                                                      (__HANDLE__)->PWM_MspDeInitCallback        = NULL;            \
-
 
1038
                                                      (__HANDLE__)->OnePulse_MspInitCallback     = NULL;            \
-
 
1039
                                                      (__HANDLE__)->OnePulse_MspDeInitCallback   = NULL;            \
-
 
1040
                                                      (__HANDLE__)->Encoder_MspInitCallback      = NULL;            \
-
 
1041
                                                      (__HANDLE__)->Encoder_MspDeInitCallback    = NULL;            \
-
 
1042
                                                      (__HANDLE__)->HallSensor_MspInitCallback   = NULL;            \
-
 
1043
                                                      (__HANDLE__)->HallSensor_MspDeInitCallback = NULL;            \
-
 
1044
                                                     } while(0)
-
 
1045
#else
-
 
1046
#define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do {                                                               \
-
 
1047
                                                      (__HANDLE__)->State            = HAL_TIM_STATE_RESET;         \
-
 
1048
                                                      (__HANDLE__)->ChannelState[0]  = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1049
                                                      (__HANDLE__)->ChannelState[1]  = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1050
                                                      (__HANDLE__)->ChannelState[2]  = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1051
                                                      (__HANDLE__)->ChannelState[3]  = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1052
                                                      (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1053
                                                      (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1054
                                                      (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1055
                                                      (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
-
 
1056
                                                      (__HANDLE__)->DMABurstState    = HAL_DMA_BURST_STATE_RESET;   \
-
 
1057
                                                     } while(0)
-
 
1058
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
1188
 
1059
 
1189
/**
1060
/**
1190
  * @brief  Enable the TIM peripheral.
1061
  * @brief  Enable the TIM peripheral.
1191
  * @param  __HANDLE__: TIM handle
1062
  * @param  __HANDLE__ TIM handle
1192
  * @retval None
1063
  * @retval None
1193
 */
1064
  */
1194
#define __HAL_TIM_ENABLE(__HANDLE__)                 ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN))
1065
#define __HAL_TIM_ENABLE(__HANDLE__)                 ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN))
1195
 
1066
 
1196
/**
1067
/**
1197
  * @brief  Enable the TIM main Output.
1068
  * @brief  Enable the TIM main Output.
1198
  * @param  __HANDLE__: TIM handle
1069
  * @param  __HANDLE__ TIM handle
1199
  * @retval None
1070
  * @retval None
1200
  */
1071
  */
1201
#define __HAL_TIM_MOE_ENABLE(__HANDLE__)             ((__HANDLE__)->Instance->BDTR|=(TIM_BDTR_MOE))
1072
#define __HAL_TIM_MOE_ENABLE(__HANDLE__)             ((__HANDLE__)->Instance->BDTR|=(TIM_BDTR_MOE))
1202
 
1073
 
1203
/**
1074
/**
1204
  * @brief  Disable the TIM peripheral.
1075
  * @brief  Disable the TIM peripheral.
1205
  * @param  __HANDLE__: TIM handle
1076
  * @param  __HANDLE__ TIM handle
1206
  * @retval None
1077
  * @retval None
1207
  */
1078
  */
1208
#define __HAL_TIM_DISABLE(__HANDLE__) \
1079
#define __HAL_TIM_DISABLE(__HANDLE__) \
1209
                        do { \
1080
  do { \
1210
                          if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0U) \
1081
    if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1211
                            { \
1082
    { \
1212
                            if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0U) \
1083
      if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1213
                            { \
1084
      { \
1214
                              (__HANDLE__)->Instance->CR1 &= ~(TIM_CR1_CEN); \
1085
        (__HANDLE__)->Instance->CR1 &= ~(TIM_CR1_CEN); \
1215
                            } \
1086
      } \
1216
                          } \
1087
    } \
1217
                        } while(0U)
1088
  } while(0)
1218
/* The Main Output Enable of a timer instance is disabled only if all the CCx and CCxN
-
 
1219
   channels have been disabled */
-
 
-
 
1089
 
1220
/**
1090
/**
1221
  * @brief  Disable the TIM main Output.
1091
  * @brief  Disable the TIM main Output.
1222
  * @param  __HANDLE__: TIM handle
1092
  * @param  __HANDLE__ TIM handle
1223
  * @retval None
1093
  * @retval None
1224
  * @note The Main Output Enable of a timer instance is disabled only if all the CCx and CCxN channels have been disabled
1094
  * @note The Main Output Enable of a timer instance is disabled only if all the CCx and CCxN channels have been disabled
1225
  */
1095
  */
1226
#define __HAL_TIM_MOE_DISABLE(__HANDLE__) \
1096
#define __HAL_TIM_MOE_DISABLE(__HANDLE__) \
1227
                        do { \
1097
  do { \
1228
                          if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0U) \
1098
    if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1229
                          { \
1099
    { \
1230
                            if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0U) \
1100
      if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1231
                            { \
1101
      { \
1232
                              (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE); \
1102
        (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE); \
1233
                            } \
1103
      } \
1234
                            } \
1104
    } \
1235
                        } while(0U)
1105
  } while(0)
1236
 
1106
 
1237
/**
1107
/**
1238
  * @brief  Disable the TIM main Output.
1108
  * @brief  Disable the TIM main Output.
1239
  * @param  __HANDLE__: TIM handle
1109
  * @param  __HANDLE__ TIM handle
1240
  * @retval None
1110
  * @retval None
1241
  * @note The Main Output Enable of a timer instance is disabled unconditionally
1111
  * @note The Main Output Enable of a timer instance is disabled unconditionally
1242
  */
1112
  */
1243
#define __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY(__HANDLE__)  (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE)
1113
#define __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY(__HANDLE__)  (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE)
1244
 
1114
 
1245
/**
-
 
1246
  * @brief  Enables the specified TIM interrupt.
1115
/** @brief  Enable the specified TIM interrupt.
1247
  * @param  __HANDLE__: specifies the TIM Handle.
1116
  * @param  __HANDLE__ specifies the TIM Handle.
1248
  * @param  __INTERRUPT__: specifies the TIM interrupt source to enable.
1117
  * @param  __INTERRUPT__ specifies the TIM interrupt source to enable.
1249
  *          This parameter can be one of the following values:
1118
  *          This parameter can be one of the following values:
1250
  *            @arg TIM_IT_UPDATE: Update interrupt
1119
  *            @arg TIM_IT_UPDATE: Update interrupt
1251
  *            @arg TIM_IT_CC1:  Capture/Compare 1 interrupt
1120
  *            @arg TIM_IT_CC1:   Capture/Compare 1 interrupt
1252
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
1121
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
1253
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
1122
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
1254
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
1123
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
1255
  *            @arg TIM_IT_COM:  Commutation interrupt
1124
  *            @arg TIM_IT_COM:   Commutation interrupt
1256
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
1125
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
1257
  *            @arg TIM_IT_BREAK: Break interrupt
1126
  *            @arg TIM_IT_BREAK: Break interrupt
1258
  * @retval None
1127
  * @retval None
1259
  */
1128
  */
1260
#define __HAL_TIM_ENABLE_IT(__HANDLE__, __INTERRUPT__)    ((__HANDLE__)->Instance->DIER |= (__INTERRUPT__))
1129
#define __HAL_TIM_ENABLE_IT(__HANDLE__, __INTERRUPT__)    ((__HANDLE__)->Instance->DIER |= (__INTERRUPT__))
1261
 
1130
 
1262
/**
-
 
1263
  * @brief  Disables the specified TIM interrupt.
1131
/** @brief  Disable the specified TIM interrupt.
1264
  * @param  __HANDLE__: specifies the TIM Handle.
1132
  * @param  __HANDLE__ specifies the TIM Handle.
1265
  * @param  __INTERRUPT__: specifies the TIM interrupt source to disable.
1133
  * @param  __INTERRUPT__ specifies the TIM interrupt source to disable.
1266
  *          This parameter can be one of the following values:
1134
  *          This parameter can be one of the following values:
1267
  *            @arg TIM_IT_UPDATE: Update interrupt
1135
  *            @arg TIM_IT_UPDATE: Update interrupt
1268
  *            @arg TIM_IT_CC1:  Capture/Compare 1 interrupt
1136
  *            @arg TIM_IT_CC1:   Capture/Compare 1 interrupt
1269
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
1137
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
1270
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
1138
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
1271
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
1139
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
1272
  *            @arg TIM_IT_COM:  Commutation interrupt
1140
  *            @arg TIM_IT_COM:   Commutation interrupt
1273
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
1141
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
1274
  *            @arg TIM_IT_BREAK: Break interrupt
1142
  *            @arg TIM_IT_BREAK: Break interrupt
1275
  * @retval None
1143
  * @retval None
1276
  */
1144
  */
1277
#define __HAL_TIM_DISABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->DIER &= ~(__INTERRUPT__))
1145
#define __HAL_TIM_DISABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->DIER &= ~(__INTERRUPT__))
1278
 
1146
 
1279
/**
-
 
1280
  * @brief  Enables the specified DMA request.
1147
/** @brief  Enable the specified DMA request.
1281
  * @param  __HANDLE__: specifies the TIM Handle.
1148
  * @param  __HANDLE__ specifies the TIM Handle.
1282
  * @param  __DMA__: specifies the TIM DMA request to enable.
1149
  * @param  __DMA__ specifies the TIM DMA request to enable.
1283
  *          This parameter can be one of the following values:
1150
  *          This parameter can be one of the following values:
1284
  *            @arg TIM_DMA_UPDATE: Update DMA request
1151
  *            @arg TIM_DMA_UPDATE: Update DMA request
1285
  *            @arg TIM_DMA_CC1:  Capture/Compare 1 DMA request
1152
  *            @arg TIM_DMA_CC1:   Capture/Compare 1 DMA request
1286
  *            @arg TIM_DMA_CC2:  Capture/Compare 2 DMA request
1153
  *            @arg TIM_DMA_CC2:  Capture/Compare 2 DMA request
1287
  *            @arg TIM_DMA_CC3:  Capture/Compare 3 DMA request
1154
  *            @arg TIM_DMA_CC3:  Capture/Compare 3 DMA request
1288
  *            @arg TIM_DMA_CC4:  Capture/Compare 4 DMA request
1155
  *            @arg TIM_DMA_CC4:  Capture/Compare 4 DMA request
1289
  *            @arg TIM_DMA_COM:  Commutation DMA request
1156
  *            @arg TIM_DMA_COM:   Commutation DMA request
1290
  *            @arg TIM_DMA_TRIGGER: Trigger DMA request
1157
  *            @arg TIM_DMA_TRIGGER: Trigger DMA request
1291
  * @retval None
1158
  * @retval None
1292
  */
1159
  */
1293
#define __HAL_TIM_ENABLE_DMA(__HANDLE__, __DMA__)         ((__HANDLE__)->Instance->DIER |= (__DMA__))
1160
#define __HAL_TIM_ENABLE_DMA(__HANDLE__, __DMA__)         ((__HANDLE__)->Instance->DIER |= (__DMA__))
1294
 
1161
 
1295
/**
-
 
1296
  * @brief  Disables the specified DMA request.
1162
/** @brief  Disable the specified DMA request.
1297
  * @param  __HANDLE__: specifies the TIM Handle.
1163
  * @param  __HANDLE__ specifies the TIM Handle.
1298
  * @param  __DMA__: specifies the TIM DMA request to disable.
1164
  * @param  __DMA__ specifies the TIM DMA request to disable.
1299
  *          This parameter can be one of the following values:
1165
  *          This parameter can be one of the following values:
1300
  *            @arg TIM_DMA_UPDATE: Update DMA request
1166
  *            @arg TIM_DMA_UPDATE: Update DMA request
1301
  *            @arg TIM_DMA_CC1:  Capture/Compare 1 DMA request
1167
  *            @arg TIM_DMA_CC1:   Capture/Compare 1 DMA request
1302
  *            @arg TIM_DMA_CC2:  Capture/Compare 2 DMA request
1168
  *            @arg TIM_DMA_CC2:  Capture/Compare 2 DMA request
1303
  *            @arg TIM_DMA_CC3:  Capture/Compare 3 DMA request
1169
  *            @arg TIM_DMA_CC3:  Capture/Compare 3 DMA request
1304
  *            @arg TIM_DMA_CC4:  Capture/Compare 4 DMA request
1170
  *            @arg TIM_DMA_CC4:  Capture/Compare 4 DMA request
1305
  *            @arg TIM_DMA_COM:  Commutation DMA request
1171
  *            @arg TIM_DMA_COM:   Commutation DMA request
1306
  *            @arg TIM_DMA_TRIGGER: Trigger DMA request
1172
  *            @arg TIM_DMA_TRIGGER: Trigger DMA request
1307
  * @retval None
1173
  * @retval None
1308
  */
1174
  */
1309
#define __HAL_TIM_DISABLE_DMA(__HANDLE__, __DMA__)        ((__HANDLE__)->Instance->DIER &= ~(__DMA__))
1175
#define __HAL_TIM_DISABLE_DMA(__HANDLE__, __DMA__)        ((__HANDLE__)->Instance->DIER &= ~(__DMA__))
1310
 
1176
 
1311
/**
-
 
1312
  * @brief  Checks whether the specified TIM interrupt flag is set or not.
1177
/** @brief  Check whether the specified TIM interrupt flag is set or not.
1313
  * @param  __HANDLE__: specifies the TIM Handle.
1178
  * @param  __HANDLE__ specifies the TIM Handle.
1314
  * @param  __FLAG__: specifies the TIM interrupt flag to check.
1179
  * @param  __FLAG__ specifies the TIM interrupt flag to check.
1315
  *        This parameter can be one of the following values:
1180
  *        This parameter can be one of the following values:
1316
  *            @arg TIM_FLAG_UPDATE: Update interrupt flag
1181
  *            @arg TIM_FLAG_UPDATE: Update interrupt flag
1317
  *            @arg TIM_FLAG_CC1: Capture/Compare 1 interrupt flag
1182
  *            @arg TIM_FLAG_CC1: Capture/Compare 1 interrupt flag
1318
  *            @arg TIM_FLAG_CC2: Capture/Compare 2 interrupt flag
1183
  *            @arg TIM_FLAG_CC2: Capture/Compare 2 interrupt flag
1319
  *            @arg TIM_FLAG_CC3: Capture/Compare 3 interrupt flag
1184
  *            @arg TIM_FLAG_CC3: Capture/Compare 3 interrupt flag
1320
  *            @arg TIM_FLAG_CC4: Capture/Compare 4 interrupt flag
1185
  *            @arg TIM_FLAG_CC4: Capture/Compare 4 interrupt flag
1321
  *            @arg TIM_FLAG_COM:  Commutation interrupt flag
1186
  *            @arg TIM_FLAG_COM:  Commutation interrupt flag
1322
  *            @arg TIM_FLAG_TRIGGER: Trigger interrupt flag
1187
  *            @arg TIM_FLAG_TRIGGER: Trigger interrupt flag
1323
  *            @arg TIM_FLAG_BREAK: Break interrupt flag  
1188
  *            @arg TIM_FLAG_BREAK: Break interrupt flag
1324
  *            @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag
1189
  *            @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag
1325
  *            @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag
1190
  *            @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag
1326
  *            @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag
1191
  *            @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag
1327
  *            @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag
1192
  *            @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag
1328
  * @retval The new state of __FLAG__ (TRUE or FALSE).
1193
  * @retval The new state of __FLAG__ (TRUE or FALSE).
1329
  */
1194
  */
1330
#define __HAL_TIM_GET_FLAG(__HANDLE__, __FLAG__)          (((__HANDLE__)->Instance->SR &(__FLAG__)) == (__FLAG__))
1195
#define __HAL_TIM_GET_FLAG(__HANDLE__, __FLAG__)          (((__HANDLE__)->Instance->SR &(__FLAG__)) == (__FLAG__))
1331
 
1196
 
1332
/**
-
 
1333
  * @brief  Clears the specified TIM interrupt flag.
1197
/** @brief  Clear the specified TIM interrupt flag.
1334
  * @param  __HANDLE__: specifies the TIM Handle.
1198
  * @param  __HANDLE__ specifies the TIM Handle.
1335
  * @param  __FLAG__: specifies the TIM interrupt flag to clear.
1199
  * @param  __FLAG__ specifies the TIM interrupt flag to clear.
1336
  *        This parameter can be one of the following values:
1200
  *        This parameter can be one of the following values:
1337
  *            @arg TIM_FLAG_UPDATE: Update interrupt flag
1201
  *            @arg TIM_FLAG_UPDATE: Update interrupt flag
1338
  *            @arg TIM_FLAG_CC1: Capture/Compare 1 interrupt flag
1202
  *            @arg TIM_FLAG_CC1: Capture/Compare 1 interrupt flag
1339
  *            @arg TIM_FLAG_CC2: Capture/Compare 2 interrupt flag
1203
  *            @arg TIM_FLAG_CC2: Capture/Compare 2 interrupt flag
1340
  *            @arg TIM_FLAG_CC3: Capture/Compare 3 interrupt flag
1204
  *            @arg TIM_FLAG_CC3: Capture/Compare 3 interrupt flag
1341
  *            @arg TIM_FLAG_CC4: Capture/Compare 4 interrupt flag
1205
  *            @arg TIM_FLAG_CC4: Capture/Compare 4 interrupt flag
1342
  *            @arg TIM_FLAG_COM:  Commutation interrupt flag
1206
  *            @arg TIM_FLAG_COM:  Commutation interrupt flag
1343
  *            @arg TIM_FLAG_TRIGGER: Trigger interrupt flag
1207
  *            @arg TIM_FLAG_TRIGGER: Trigger interrupt flag
1344
  *            @arg TIM_FLAG_BREAK: Break interrupt flag  
1208
  *            @arg TIM_FLAG_BREAK: Break interrupt flag
1345
  *            @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag
1209
  *            @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag
1346
  *            @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag
1210
  *            @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag
1347
  *            @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag
1211
  *            @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag
1348
  *            @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag
1212
  *            @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag
1349
  * @retval The new state of __FLAG__ (TRUE or FALSE).
1213
  * @retval The new state of __FLAG__ (TRUE or FALSE).
1350
  */
1214
  */
1351
#define __HAL_TIM_CLEAR_FLAG(__HANDLE__, __FLAG__)        ((__HANDLE__)->Instance->SR = ~(__FLAG__))
1215
#define __HAL_TIM_CLEAR_FLAG(__HANDLE__, __FLAG__)        ((__HANDLE__)->Instance->SR = ~(__FLAG__))
1352
 
1216
 
1353
/**
1217
/**
1354
  * @brief  Checks whether the specified TIM interrupt has occurred or not.
1218
  * @brief  Check whether the specified TIM interrupt source is enabled or not.
1355
  * @param  __HANDLE__: TIM handle
1219
  * @param  __HANDLE__ TIM handle
1356
  * @param  __INTERRUPT__: specifies the TIM interrupt source to check.
1220
  * @param  __INTERRUPT__ specifies the TIM interrupt source to check.
-
 
1221
  *          This parameter can be one of the following values:
-
 
1222
  *            @arg TIM_IT_UPDATE: Update interrupt
-
 
1223
  *            @arg TIM_IT_CC1:   Capture/Compare 1 interrupt
-
 
1224
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
-
 
1225
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
-
 
1226
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
-
 
1227
  *            @arg TIM_IT_COM:   Commutation interrupt
-
 
1228
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
-
 
1229
  *            @arg TIM_IT_BREAK: Break interrupt
1357
  * @retval The state of TIM_IT (SET or RESET).
1230
  * @retval The state of TIM_IT (SET or RESET).
1358
  */
1231
  */
1359
#define __HAL_TIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->DIER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
1232
#define __HAL_TIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->DIER & (__INTERRUPT__)) \
-
 
1233
                                                             == (__INTERRUPT__)) ? SET : RESET)
1360
 
1234
 
1361
/**
-
 
1362
  * @brief Clear the TIM interrupt pending bits
1235
/** @brief Clear the TIM interrupt pending bits.
1363
  * @param  __HANDLE__: TIM handle
1236
  * @param  __HANDLE__ TIM handle
1364
  * @param  __INTERRUPT__: specifies the interrupt pending bit to clear.
1237
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
-
 
1238
  *          This parameter can be one of the following values:
-
 
1239
  *            @arg TIM_IT_UPDATE: Update interrupt
-
 
1240
  *            @arg TIM_IT_CC1:   Capture/Compare 1 interrupt
-
 
1241
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
-
 
1242
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
-
 
1243
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
-
 
1244
  *            @arg TIM_IT_COM:   Commutation interrupt
-
 
1245
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
-
 
1246
  *            @arg TIM_IT_BREAK: Break interrupt
1365
  * @retval None
1247
  * @retval None
1366
  */
1248
  */
1367
#define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__)     ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__))
1249
#define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__)      ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__))
1368
 
1250
 
1369
/**
1251
/**
1370
  * @brief  Indicates whether or not the TIM Counter is used as downcounter
1252
  * @brief  Indicates whether or not the TIM Counter is used as downcounter.
1371
  * @param  __HANDLE__: TIM handle.
1253
  * @param  __HANDLE__ TIM handle.
1372
  * @retval False (Counter used as upcounter) or True (Counter used as downcounter)
1254
  * @retval False (Counter used as upcounter) or True (Counter used as downcounter)
1373
  * @note This macro is particularly usefull to get the counting mode when the timer operates in Center-aligned mode or Encoder
1255
  * @note This macro is particularly useful to get the counting mode when the timer operates in Center-aligned mode or Encoder
1374
mode.
1256
mode.
1375
  */
1257
  */
1376
#define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__)            (((__HANDLE__)->Instance->CR1 & (TIM_CR1_DIR)) == (TIM_CR1_DIR))
1258
#define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__)    (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR))
1377
 
1259
 
1378
/**
1260
/**
1379
  * @brief  Sets the TIM active prescaler register value on update event.
1261
  * @brief  Set the TIM Prescaler on runtime.
1380
  * @param  __HANDLE__: TIM handle.
1262
  * @param  __HANDLE__ TIM handle.
1381
  * @param  __PRESC__: specifies the active prescaler register new value.
1263
  * @param  __PRESC__ specifies the Prescaler new value.
1382
  * @retval None
1264
  * @retval None
1383
  */
1265
  */
1384
#define __HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__)       ((__HANDLE__)->Instance->PSC = (__PRESC__))
1266
#define __HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__)       ((__HANDLE__)->Instance->PSC = (__PRESC__))
1385
 
1267
 
1386
/**
1268
/**
1387
  * @brief  Sets the TIM Capture Compare Register value on runtime without
-
 
1388
  *         calling another time ConfigChannel function.
-
 
1389
  * @param  __HANDLE__: TIM handle.
-
 
1390
  * @param  __CHANNEL__ : TIM Channels to be configured.
-
 
1391
  *          This parameter can be one of the following values:
-
 
1392
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
1393
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
1394
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
-
 
1395
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
-
 
1396
  * @param  __COMPARE__: specifies the Capture Compare register new value.
-
 
1397
  * @retval None
-
 
1398
  */
-
 
1399
#define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \
-
 
1400
(*(__IO uint32_t *)(&((__HANDLE__)->Instance->CCR1) + ((__CHANNEL__) >> 2U)) = (__COMPARE__))
-
 
1401
 
-
 
1402
/**
-
 
1403
  * @brief  Gets the TIM Capture Compare Register value on runtime
-
 
1404
  * @param  __HANDLE__: TIM handle.
-
 
1405
  * @param  __CHANNEL__ : TIM Channel associated with the capture compare register
-
 
1406
  *          This parameter can be one of the following values:
-
 
1407
  *            @arg TIM_CHANNEL_1: get capture/compare 1 register value
-
 
1408
  *            @arg TIM_CHANNEL_2: get capture/compare 2 register value
-
 
1409
  *            @arg TIM_CHANNEL_3: get capture/compare 3 register value
-
 
1410
  *            @arg TIM_CHANNEL_4: get capture/compare 4 register value
-
 
1411
  * @retval 16-bit or 32-bit value of the capture/compare register (TIMx_CCRy)
-
 
1412
  */
-
 
1413
#define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \
-
 
1414
  (*(__IO uint32_t *)(&((__HANDLE__)->Instance->CCR1) + ((__CHANNEL__) >> 2U)))
-
 
1415
 
-
 
1416
/**
-
 
1417
  * @brief  Sets the TIM Counter Register value on runtime.
1269
  * @brief  Set the TIM Counter Register value on runtime.
1418
  * @param  __HANDLE__: TIM handle.
1270
  * @param  __HANDLE__ TIM handle.
1419
  * @param  __COUNTER__: specifies the Counter register new value.
1271
  * @param  __COUNTER__ specifies the Counter register new value.
1420
  * @retval None
1272
  * @retval None
1421
  */
1273
  */
1422
#define __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__)  ((__HANDLE__)->Instance->CNT = (__COUNTER__))
1274
#define __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__)  ((__HANDLE__)->Instance->CNT = (__COUNTER__))
1423
 
1275
 
1424
/**
1276
/**
1425
  * @brief  Gets the TIM Counter Register value on runtime.
1277
  * @brief  Get the TIM Counter Register value on runtime.
1426
  * @param  __HANDLE__: TIM handle.
1278
  * @param  __HANDLE__ TIM handle.
1427
  * @retval 16-bit or 32-bit value of the timer counter register (TIMx_CNT)
1279
  * @retval 16-bit or 32-bit value of the timer counter register (TIMx_CNT)
1428
  */
1280
  */
1429
#define __HAL_TIM_GET_COUNTER(__HANDLE__) \
1281
#define __HAL_TIM_GET_COUNTER(__HANDLE__)  ((__HANDLE__)->Instance->CNT)
1430
   ((__HANDLE__)->Instance->CNT)
-
 
1431
 
1282
 
1432
/**
1283
/**
1433
  * @brief  Sets the TIM Autoreload Register value on runtime without calling
1284
  * @brief  Set the TIM Autoreload Register value on runtime without calling another time any Init function.
1434
  *         another time any Init function.
-
 
1435
  * @param  __HANDLE__: TIM handle.
1285
  * @param  __HANDLE__ TIM handle.
1436
  * @param  __AUTORELOAD__: specifies the Counter register new value.
1286
  * @param  __AUTORELOAD__ specifies the Counter register new value.
1437
  * @retval None
1287
  * @retval None
1438
  */
1288
  */
1439
#define __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__) \
1289
#define __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__) \
1440
                        do{                                                    \
1290
  do{                                                    \
1441
                              (__HANDLE__)->Instance->ARR = (__AUTORELOAD__);  \
1291
    (__HANDLE__)->Instance->ARR = (__AUTORELOAD__);  \
1442
                              (__HANDLE__)->Init.Period = (__AUTORELOAD__);    \
1292
    (__HANDLE__)->Init.Period = (__AUTORELOAD__);    \
1443
                          } while(0U)
1293
  } while(0)
1444
 
1294
 
1445
/**
1295
/**
1446
  * @brief  Gets the TIM Autoreload Register value on runtime
1296
  * @brief  Get the TIM Autoreload Register value on runtime.
1447
  * @param  __HANDLE__: TIM handle.
1297
  * @param  __HANDLE__ TIM handle.
1448
  * @retval @retval 16-bit or 32-bit value of the timer auto-reload register(TIMx_ARR)
1298
  * @retval 16-bit or 32-bit value of the timer auto-reload register(TIMx_ARR)
1449
  */
1299
  */
1450
#define __HAL_TIM_GET_AUTORELOAD(__HANDLE__) \
1300
#define __HAL_TIM_GET_AUTORELOAD(__HANDLE__)  ((__HANDLE__)->Instance->ARR)
1451
   ((__HANDLE__)->Instance->ARR)
-
 
1452
 
1301
 
1453
/**
1302
/**
1454
  * @brief  Sets the TIM Clock Division value on runtime without calling
1303
  * @brief  Set the TIM Clock Division value on runtime without calling another time any Init function.
1455
  *         another time any Init function.
-
 
1456
  * @param  __HANDLE__: TIM handle.
1304
  * @param  __HANDLE__ TIM handle.
1457
  * @param  __CKD__: specifies the clock division value.
1305
  * @param  __CKD__ specifies the clock division value.
1458
  *          This parameter can be one of the following value:
1306
  *          This parameter can be one of the following value:
1459
  *            @arg TIM_CLOCKDIVISION_DIV1: tDTS=tCK_INT
1307
  *            @arg TIM_CLOCKDIVISION_DIV1: tDTS=tCK_INT
1460
  *            @arg TIM_CLOCKDIVISION_DIV2: tDTS=2*tCK_INT
1308
  *            @arg TIM_CLOCKDIVISION_DIV2: tDTS=2*tCK_INT
1461
  *            @arg TIM_CLOCKDIVISION_DIV4: tDTS=4*tCK_INT
1309
  *            @arg TIM_CLOCKDIVISION_DIV4: tDTS=4*tCK_INT
1462
  * @retval None
1310
  * @retval None
1463
  */
1311
  */
1464
#define __HAL_TIM_SET_CLOCKDIVISION(__HANDLE__, __CKD__) \
1312
#define __HAL_TIM_SET_CLOCKDIVISION(__HANDLE__, __CKD__) \
1465
                        do{                                                             \
1313
  do{                                                   \
1466
                              (__HANDLE__)->Instance->CR1 &= (uint16_t)(~TIM_CR1_CKD);  \
1314
    (__HANDLE__)->Instance->CR1 &= (~TIM_CR1_CKD);  \
1467
                              (__HANDLE__)->Instance->CR1 |= (__CKD__);                 \
1315
    (__HANDLE__)->Instance->CR1 |= (__CKD__);       \
1468
                              (__HANDLE__)->Init.ClockDivision = (__CKD__);             \
1316
    (__HANDLE__)->Init.ClockDivision = (__CKD__);   \
1469
                          } while(0U)
1317
  } while(0)
1470
 
1318
 
1471
/**
1319
/**
1472
  * @brief  Gets the TIM Clock Division value on runtime
1320
  * @brief  Get the TIM Clock Division value on runtime.
1473
  * @param  __HANDLE__: TIM handle.
1321
  * @param  __HANDLE__ TIM handle.
1474
  * @retval The clock division can be one of the following values:
1322
  * @retval The clock division can be one of the following values:
1475
  *            @arg TIM_CLOCKDIVISION_DIV1: tDTS=tCK_INT
1323
  *            @arg TIM_CLOCKDIVISION_DIV1: tDTS=tCK_INT
1476
  *            @arg TIM_CLOCKDIVISION_DIV2: tDTS=2*tCK_INT
1324
  *            @arg TIM_CLOCKDIVISION_DIV2: tDTS=2*tCK_INT
1477
  *            @arg TIM_CLOCKDIVISION_DIV4: tDTS=4*tCK_INT
1325
  *            @arg TIM_CLOCKDIVISION_DIV4: tDTS=4*tCK_INT
1478
  */
1326
  */
1479
#define __HAL_TIM_GET_CLOCKDIVISION(__HANDLE__)  \
1327
#define __HAL_TIM_GET_CLOCKDIVISION(__HANDLE__)  ((__HANDLE__)->Instance->CR1 & TIM_CR1_CKD)
1480
   ((__HANDLE__)->Instance->CR1 & TIM_CR1_CKD)
-
 
1481
 
1328
 
1482
/**
1329
/**
1483
  * @brief  Sets the TIM Input Capture prescaler on runtime without calling
1330
  * @brief  Set the TIM Input Capture prescaler on runtime without calling another time HAL_TIM_IC_ConfigChannel() function.
1484
  *         another time HAL_TIM_IC_ConfigChannel() function.
-
 
1485
  * @param  __HANDLE__: TIM handle.
1331
  * @param  __HANDLE__ TIM handle.
1486
  * @param  __CHANNEL__ : TIM Channels to be configured.
1332
  * @param  __CHANNEL__ TIM Channels to be configured.
1487
  *          This parameter can be one of the following values:
1333
  *          This parameter can be one of the following values:
1488
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
1334
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
1489
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
1335
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
1490
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
1336
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
1491
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
1337
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
1492
  * @param  __ICPSC__: specifies the Input Capture4 prescaler new value.
1338
  * @param  __ICPSC__ specifies the Input Capture4 prescaler new value.
1493
  *          This parameter can be one of the following values:
1339
  *          This parameter can be one of the following values:
1494
  *            @arg TIM_ICPSC_DIV1: no prescaler
1340
  *            @arg TIM_ICPSC_DIV1: no prescaler
1495
  *            @arg TIM_ICPSC_DIV2: capture is done once every 2 events
1341
  *            @arg TIM_ICPSC_DIV2: capture is done once every 2 events
1496
  *            @arg TIM_ICPSC_DIV4: capture is done once every 4 events
1342
  *            @arg TIM_ICPSC_DIV4: capture is done once every 4 events
1497
  *            @arg TIM_ICPSC_DIV8: capture is done once every 8 events
1343
  *            @arg TIM_ICPSC_DIV8: capture is done once every 8 events
1498
  * @retval None
1344
  * @retval None
1499
  */
1345
  */
1500
#define __HAL_TIM_SET_ICPRESCALER(__HANDLE__, __CHANNEL__, __ICPSC__) \
1346
#define __HAL_TIM_SET_ICPRESCALER(__HANDLE__, __CHANNEL__, __ICPSC__) \
1501
                        do{                                                    \
1347
  do{                                                    \
1502
                              TIM_RESET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__));  \
1348
    TIM_RESET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__));  \
1503
                              TIM_SET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__), (__ICPSC__)); \
1349
    TIM_SET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__), (__ICPSC__)); \
1504
                          } while(0U)
1350
  } while(0)
1505
 
1351
 
1506
/**
1352
/**
1507
  * @brief  Gets the TIM Input Capture prescaler on runtime
1353
  * @brief  Get the TIM Input Capture prescaler on runtime.
1508
  * @param  __HANDLE__: TIM handle.
1354
  * @param  __HANDLE__ TIM handle.
1509
  * @param  __CHANNEL__: TIM Channels to be configured.
1355
  * @param  __CHANNEL__ TIM Channels to be configured.
1510
  *          This parameter can be one of the following values:
1356
  *          This parameter can be one of the following values:
1511
  *            @arg TIM_CHANNEL_1: get input capture 1 prescaler value
1357
  *            @arg TIM_CHANNEL_1: get input capture 1 prescaler value
1512
  *            @arg TIM_CHANNEL_2: get input capture 2 prescaler value
1358
  *            @arg TIM_CHANNEL_2: get input capture 2 prescaler value
1513
  *            @arg TIM_CHANNEL_3: get input capture 3 prescaler value
1359
  *            @arg TIM_CHANNEL_3: get input capture 3 prescaler value
1514
  *            @arg TIM_CHANNEL_4: get input capture 4 prescaler value
1360
  *            @arg TIM_CHANNEL_4: get input capture 4 prescaler value
Line 1523... Line 1369...
1523
   ((__CHANNEL__) == TIM_CHANNEL_2) ? (((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC2PSC) >> 8U) :\
1369
   ((__CHANNEL__) == TIM_CHANNEL_2) ? (((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC2PSC) >> 8U) :\
1524
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC3PSC) :\
1370
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC3PSC) :\
1525
   (((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC4PSC)) >> 8U)
1371
   (((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC4PSC)) >> 8U)
1526
 
1372
 
1527
/**
1373
/**
-
 
1374
  * @brief  Set the TIM Capture Compare Register value on runtime without calling another time ConfigChannel function.
-
 
1375
  * @param  __HANDLE__ TIM handle.
-
 
1376
  * @param  __CHANNEL__ TIM Channels to be configured.
-
 
1377
  *          This parameter can be one of the following values:
-
 
1378
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
1379
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
1380
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
-
 
1381
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
-
 
1382
  * @param  __COMPARE__ specifies the Capture Compare register new value.
-
 
1383
  * @retval None
-
 
1384
  */
-
 
1385
#define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \
-
 
1386
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1 = (__COMPARE__)) :\
-
 
1387
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2 = (__COMPARE__)) :\
-
 
1388
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3 = (__COMPARE__)) :\
-
 
1389
   ((__HANDLE__)->Instance->CCR4 = (__COMPARE__)))
-
 
1390
 
-
 
1391
/**
-
 
1392
  * @brief  Get the TIM Capture Compare Register value on runtime.
-
 
1393
  * @param  __HANDLE__ TIM handle.
-
 
1394
  * @param  __CHANNEL__ TIM Channel associated with the capture compare register
-
 
1395
  *          This parameter can be one of the following values:
-
 
1396
  *            @arg TIM_CHANNEL_1: get capture/compare 1 register value
-
 
1397
  *            @arg TIM_CHANNEL_2: get capture/compare 2 register value
-
 
1398
  *            @arg TIM_CHANNEL_3: get capture/compare 3 register value
-
 
1399
  *            @arg TIM_CHANNEL_4: get capture/compare 4 register value
-
 
1400
  * @retval 16-bit or 32-bit value of the capture/compare register (TIMx_CCRy)
-
 
1401
  */
-
 
1402
#define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \
-
 
1403
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1) :\
-
 
1404
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2) :\
-
 
1405
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3) :\
-
 
1406
   ((__HANDLE__)->Instance->CCR4))
-
 
1407
 
-
 
1408
/**
-
 
1409
  * @brief  Set the TIM Output compare preload.
-
 
1410
  * @param  __HANDLE__ TIM handle.
-
 
1411
  * @param  __CHANNEL__ TIM Channels to be configured.
-
 
1412
  *          This parameter can be one of the following values:
-
 
1413
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
1414
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
1415
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
-
 
1416
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
-
 
1417
  * @retval None
-
 
1418
  */
-
 
1419
#define __HAL_TIM_ENABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__)    \
-
 
1420
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1PE) :\
-
 
1421
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2PE) :\
-
 
1422
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3PE) :\
-
 
1423
   ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE))
-
 
1424
 
-
 
1425
/**
-
 
1426
  * @brief  Reset the TIM Output compare preload.
-
 
1427
  * @param  __HANDLE__ TIM handle.
-
 
1428
  * @param  __CHANNEL__ TIM Channels to be configured.
-
 
1429
  *          This parameter can be one of the following values:
-
 
1430
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
1431
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
1432
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
-
 
1433
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
-
 
1434
  * @retval None
-
 
1435
  */
-
 
1436
#define __HAL_TIM_DISABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__)    \
-
 
1437
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1PE) :\
-
 
1438
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2PE) :\
-
 
1439
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3PE) :\
-
 
1440
   ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE))
-
 
1441
 
-
 
1442
/**
-
 
1443
  * @brief  Enable fast mode for a given channel.
-
 
1444
  * @param  __HANDLE__ TIM handle.
-
 
1445
  * @param  __CHANNEL__ TIM Channels to be configured.
-
 
1446
  *          This parameter can be one of the following values:
-
 
1447
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
1448
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
1449
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
-
 
1450
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
-
 
1451
  * @note  When fast mode is enabled an active edge on the trigger input acts
-
 
1452
  *        like a compare match on CCx output. Delay to sample the trigger
-
 
1453
  *        input and to activate CCx output is reduced to 3 clock cycles.
-
 
1454
  * @note  Fast mode acts only if the channel is configured in PWM1 or PWM2 mode.
-
 
1455
  * @retval None
-
 
1456
  */
-
 
1457
#define __HAL_TIM_ENABLE_OCxFAST(__HANDLE__, __CHANNEL__)    \
-
 
1458
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1FE) :\
-
 
1459
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2FE) :\
-
 
1460
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3FE) :\
-
 
1461
   ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE))
-
 
1462
 
-
 
1463
/**
-
 
1464
  * @brief  Disable fast mode for a given channel.
-
 
1465
  * @param  __HANDLE__ TIM handle.
-
 
1466
  * @param  __CHANNEL__ TIM Channels to be configured.
-
 
1467
  *          This parameter can be one of the following values:
-
 
1468
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
1469
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
1470
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
-
 
1471
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
-
 
1472
  * @note  When fast mode is disabled CCx output behaves normally depending
-
 
1473
  *        on counter and CCRx values even when the trigger is ON. The minimum
-
 
1474
  *        delay to activate CCx output when an active edge occurs on the
-
 
1475
  *        trigger input is 5 clock cycles.
-
 
1476
  * @retval None
-
 
1477
  */
-
 
1478
#define __HAL_TIM_DISABLE_OCxFAST(__HANDLE__, __CHANNEL__)    \
-
 
1479
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE) :\
-
 
1480
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE) :\
-
 
1481
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE) :\
-
 
1482
   ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE))
-
 
1483
 
-
 
1484
/**
1528
  * @brief  Set the Update Request Source (URS) bit of the TIMx_CR1 register
1485
  * @brief  Set the Update Request Source (URS) bit of the TIMx_CR1 register.
1529
  * @param  __HANDLE__: TIM handle.
1486
  * @param  __HANDLE__ TIM handle.
1530
  * @note  When the USR bit of the TIMx_CR1 register is set, only counter
1487
  * @note  When the URS bit of the TIMx_CR1 register is set, only counter
1531
  *        overflow/underflow generates an update interrupt or DMA request (if
1488
  *        overflow/underflow generates an update interrupt or DMA request (if
1532
  *        enabled)
1489
  *        enabled)
1533
  * @retval None
1490
  * @retval None
1534
  */
1491
  */
1535
#define __HAL_TIM_URS_ENABLE(__HANDLE__) \
-
 
1536
    ((__HANDLE__)->Instance->CR1|= (TIM_CR1_URS))
1492
#define __HAL_TIM_URS_ENABLE(__HANDLE__)  ((__HANDLE__)->Instance->CR1|= TIM_CR1_URS)
1537
 
1493
 
1538
/**
1494
/**
1539
  * @brief  Reset the Update Request Source (URS) bit of the TIMx_CR1 register
1495
  * @brief  Reset the Update Request Source (URS) bit of the TIMx_CR1 register.
1540
  * @param  __HANDLE__: TIM handle.
1496
  * @param  __HANDLE__ TIM handle.
1541
  * @note  When the USR bit of the TIMx_CR1 register is reset, any of the
1497
  * @note  When the URS bit of the TIMx_CR1 register is reset, any of the
1542
  *        following events generate an update interrupt or DMA request (if
1498
  *        following events generate an update interrupt or DMA request (if
1543
  *        enabled):
1499
  *        enabled):
1544
  *          (+) Counter overflow/underflow
1500
  *           _ Counter overflow underflow
1545
  *          (+) Setting the UG bit
1501
  *           _ Setting the UG bit
1546
  *          (+) Update generation through the slave mode controller
1502
  *           _ Update generation through the slave mode controller
1547
  * @retval None
1503
  * @retval None
1548
  */
1504
  */
1549
#define __HAL_TIM_URS_DISABLE(__HANDLE__) \
-
 
1550
      ((__HANDLE__)->Instance->CR1&=~(TIM_CR1_URS))
1505
#define __HAL_TIM_URS_DISABLE(__HANDLE__)  ((__HANDLE__)->Instance->CR1&=~TIM_CR1_URS)
1551
 
1506
 
1552
/**
1507
/**
1553
  * @brief  Sets the TIM Capture x input polarity on runtime.
1508
  * @brief  Set the TIM Capture x input polarity on runtime.
1554
  * @param  __HANDLE__: TIM handle.
1509
  * @param  __HANDLE__ TIM handle.
1555
  * @param  __CHANNEL__: TIM Channels to be configured.
1510
  * @param  __CHANNEL__ TIM Channels to be configured.
1556
  *          This parameter can be one of the following values:
1511
  *          This parameter can be one of the following values:
1557
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
1512
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
1558
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
1513
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
1559
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
1514
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
1560
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
1515
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
1561
  * @param  __POLARITY__: Polarity for TIx source  
1516
  * @param  __POLARITY__ Polarity for TIx source
1562
  *            @arg TIM_INPUTCHANNELPOLARITY_RISING: Rising Edge
1517
  *            @arg TIM_INPUTCHANNELPOLARITY_RISING: Rising Edge
1563
  *            @arg TIM_INPUTCHANNELPOLARITY_FALLING: Falling Edge
1518
  *            @arg TIM_INPUTCHANNELPOLARITY_FALLING: Falling Edge
1564
  *            @arg TIM_INPUTCHANNELPOLARITY_BOTHEDGE: Rising and Falling Edge
1519
  *            @arg TIM_INPUTCHANNELPOLARITY_BOTHEDGE: Rising and Falling Edge
1565
  * @note  The polarity TIM_INPUTCHANNELPOLARITY_BOTHEDGE is not authorized  for TIM Channel 4.    
-
 
1566
  * @retval None
1520
  * @retval None
1567
  */
1521
  */
1568
#define __HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__)    \
1522
#define __HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__)    \
1569
        do{                                                                     \
1523
  do{                                                                     \
1570
          TIM_RESET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__));               \
1524
    TIM_RESET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__));               \
1571
          TIM_SET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__), (__POLARITY__)); \
1525
    TIM_SET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__), (__POLARITY__)); \
1572
        }while(0U)
1526
  }while(0)
-
 
1527
 
-
 
1528
/**
-
 
1529
  * @}
-
 
1530
  */
-
 
1531
/* End of exported macros ----------------------------------------------------*/
-
 
1532
 
-
 
1533
/* Private constants ---------------------------------------------------------*/
-
 
1534
/** @defgroup TIM_Private_Constants TIM Private Constants
-
 
1535
  * @{
-
 
1536
  */
-
 
1537
/* The counter of a timer instance is disabled only if all the CCx and CCxN
-
 
1538
   channels have been disabled */
-
 
1539
#define TIM_CCER_CCxE_MASK  ((uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E))
-
 
1540
#define TIM_CCER_CCxNE_MASK ((uint32_t)(TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE))
-
 
1541
/**
-
 
1542
  * @}
-
 
1543
  */
-
 
1544
/* End of private constants --------------------------------------------------*/
-
 
1545
 
-
 
1546
/* Private macros ------------------------------------------------------------*/
-
 
1547
/** @defgroup TIM_Private_Macros TIM Private Macros
-
 
1548
  * @{
-
 
1549
  */
-
 
1550
#define IS_TIM_CLEARINPUT_SOURCE(__MODE__)  (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE)      || \
-
 
1551
                                             ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR))
-
 
1552
 
-
 
1553
#define IS_TIM_DMA_BASE(__BASE__) (((__BASE__) == TIM_DMABASE_CR1)   || \
-
 
1554
                                   ((__BASE__) == TIM_DMABASE_CR2)   || \
-
 
1555
                                   ((__BASE__) == TIM_DMABASE_SMCR)  || \
-
 
1556
                                   ((__BASE__) == TIM_DMABASE_DIER)  || \
-
 
1557
                                   ((__BASE__) == TIM_DMABASE_SR)    || \
-
 
1558
                                   ((__BASE__) == TIM_DMABASE_EGR)   || \
-
 
1559
                                   ((__BASE__) == TIM_DMABASE_CCMR1) || \
-
 
1560
                                   ((__BASE__) == TIM_DMABASE_CCMR2) || \
-
 
1561
                                   ((__BASE__) == TIM_DMABASE_CCER)  || \
-
 
1562
                                   ((__BASE__) == TIM_DMABASE_CNT)   || \
-
 
1563
                                   ((__BASE__) == TIM_DMABASE_PSC)   || \
-
 
1564
                                   ((__BASE__) == TIM_DMABASE_ARR)   || \
-
 
1565
                                   ((__BASE__) == TIM_DMABASE_RCR)   || \
-
 
1566
                                   ((__BASE__) == TIM_DMABASE_CCR1)  || \
-
 
1567
                                   ((__BASE__) == TIM_DMABASE_CCR2)  || \
-
 
1568
                                   ((__BASE__) == TIM_DMABASE_CCR3)  || \
-
 
1569
                                   ((__BASE__) == TIM_DMABASE_CCR4)  || \
-
 
1570
                                   ((__BASE__) == TIM_DMABASE_BDTR))
-
 
1571
 
-
 
1572
#define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFF00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
-
 
1573
 
-
 
1574
#define IS_TIM_COUNTER_MODE(__MODE__)      (((__MODE__) == TIM_COUNTERMODE_UP)              || \
-
 
1575
                                            ((__MODE__) == TIM_COUNTERMODE_DOWN)            || \
-
 
1576
                                            ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED1)  || \
-
 
1577
                                            ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED2)  || \
-
 
1578
                                            ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED3))
-
 
1579
 
-
 
1580
#define IS_TIM_CLOCKDIVISION_DIV(__DIV__)  (((__DIV__) == TIM_CLOCKDIVISION_DIV1) || \
-
 
1581
                                            ((__DIV__) == TIM_CLOCKDIVISION_DIV2) || \
-
 
1582
                                            ((__DIV__) == TIM_CLOCKDIVISION_DIV4))
-
 
1583
 
-
 
1584
#define IS_TIM_AUTORELOAD_PRELOAD(PRELOAD) (((PRELOAD) == TIM_AUTORELOAD_PRELOAD_DISABLE) || \
-
 
1585
                                            ((PRELOAD) == TIM_AUTORELOAD_PRELOAD_ENABLE))
-
 
1586
 
-
 
1587
#define IS_TIM_FAST_STATE(__STATE__)       (((__STATE__) == TIM_OCFAST_DISABLE) || \
-
 
1588
                                            ((__STATE__) == TIM_OCFAST_ENABLE))
-
 
1589
 
-
 
1590
#define IS_TIM_OC_POLARITY(__POLARITY__)   (((__POLARITY__) == TIM_OCPOLARITY_HIGH) || \
-
 
1591
                                            ((__POLARITY__) == TIM_OCPOLARITY_LOW))
-
 
1592
 
-
 
1593
#define IS_TIM_OCN_POLARITY(__POLARITY__)  (((__POLARITY__) == TIM_OCNPOLARITY_HIGH) || \
-
 
1594
                                            ((__POLARITY__) == TIM_OCNPOLARITY_LOW))
-
 
1595
 
-
 
1596
#define IS_TIM_OCIDLE_STATE(__STATE__)     (((__STATE__) == TIM_OCIDLESTATE_SET) || \
-
 
1597
                                            ((__STATE__) == TIM_OCIDLESTATE_RESET))
-
 
1598
 
-
 
1599
#define IS_TIM_OCNIDLE_STATE(__STATE__)    (((__STATE__) == TIM_OCNIDLESTATE_SET) || \
-
 
1600
                                            ((__STATE__) == TIM_OCNIDLESTATE_RESET))
-
 
1601
 
-
 
1602
#define IS_TIM_ENCODERINPUT_POLARITY(__POLARITY__)   (((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_RISING)   || \
-
 
1603
                                                      ((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_FALLING))
-
 
1604
 
-
 
1605
#define IS_TIM_IC_POLARITY(__POLARITY__)   (((__POLARITY__) == TIM_ICPOLARITY_RISING)   || \
-
 
1606
                                            ((__POLARITY__) == TIM_ICPOLARITY_FALLING)  || \
-
 
1607
                                            ((__POLARITY__) == TIM_ICPOLARITY_BOTHEDGE))
-
 
1608
 
-
 
1609
#define IS_TIM_IC_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_ICSELECTION_DIRECTTI) || \
-
 
1610
                                            ((__SELECTION__) == TIM_ICSELECTION_INDIRECTTI) || \
-
 
1611
                                            ((__SELECTION__) == TIM_ICSELECTION_TRC))
-
 
1612
 
-
 
1613
#define IS_TIM_IC_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ICPSC_DIV1) || \
-
 
1614
                                            ((__PRESCALER__) == TIM_ICPSC_DIV2) || \
-
 
1615
                                            ((__PRESCALER__) == TIM_ICPSC_DIV4) || \
-
 
1616
                                            ((__PRESCALER__) == TIM_ICPSC_DIV8))
-
 
1617
 
-
 
1618
#define IS_TIM_OPM_MODE(__MODE__)          (((__MODE__) == TIM_OPMODE_SINGLE) || \
-
 
1619
                                            ((__MODE__) == TIM_OPMODE_REPETITIVE))
-
 
1620
 
-
 
1621
#define IS_TIM_ENCODER_MODE(__MODE__)      (((__MODE__) == TIM_ENCODERMODE_TI1) || \
-
 
1622
                                            ((__MODE__) == TIM_ENCODERMODE_TI2) || \
-
 
1623
                                            ((__MODE__) == TIM_ENCODERMODE_TI12))
-
 
1624
 
-
 
1625
#define IS_TIM_DMA_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFF80FFU) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
-
 
1626
 
-
 
1627
#define IS_TIM_CHANNELS(__CHANNEL__)       (((__CHANNEL__) == TIM_CHANNEL_1) || \
-
 
1628
                                            ((__CHANNEL__) == TIM_CHANNEL_2) || \
-
 
1629
                                            ((__CHANNEL__) == TIM_CHANNEL_3) || \
-
 
1630
                                            ((__CHANNEL__) == TIM_CHANNEL_4) || \
-
 
1631
                                            ((__CHANNEL__) == TIM_CHANNEL_ALL))
-
 
1632
 
-
 
1633
#define IS_TIM_OPM_CHANNELS(__CHANNEL__)   (((__CHANNEL__) == TIM_CHANNEL_1) || \
-
 
1634
                                            ((__CHANNEL__) == TIM_CHANNEL_2))
-
 
1635
 
-
 
1636
#define IS_TIM_COMPLEMENTARY_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
-
 
1637
                                                    ((__CHANNEL__) == TIM_CHANNEL_2) || \
-
 
1638
                                                    ((__CHANNEL__) == TIM_CHANNEL_3))
-
 
1639
 
-
 
1640
#define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
-
 
1641
                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
-
 
1642
                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0)     || \
-
 
1643
                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1)     || \
-
 
1644
                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2)     || \
-
 
1645
                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3)     || \
-
 
1646
                                       ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED)    || \
-
 
1647
                                       ((__CLOCK__) == TIM_CLOCKSOURCE_TI1)      || \
-
 
1648
                                       ((__CLOCK__) == TIM_CLOCKSOURCE_TI2)      || \
-
 
1649
                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1))
-
 
1650
 
-
 
1651
#define IS_TIM_CLOCKPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLOCKPOLARITY_INVERTED)    || \
-
 
1652
                                            ((__POLARITY__) == TIM_CLOCKPOLARITY_NONINVERTED) || \
-
 
1653
                                            ((__POLARITY__) == TIM_CLOCKPOLARITY_RISING)      || \
-
 
1654
                                            ((__POLARITY__) == TIM_CLOCKPOLARITY_FALLING)     || \
-
 
1655
                                            ((__POLARITY__) == TIM_CLOCKPOLARITY_BOTHEDGE))
-
 
1656
 
-
 
1657
#define IS_TIM_CLOCKPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV1) || \
-
 
1658
                                              ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV2) || \
-
 
1659
                                              ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV4) || \
-
 
1660
                                              ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV8))
-
 
1661
 
-
 
1662
#define IS_TIM_CLOCKFILTER(__ICFILTER__)      ((__ICFILTER__) <= 0xFU)
-
 
1663
 
-
 
1664
#define IS_TIM_CLEARINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLEARINPUTPOLARITY_INVERTED) || \
-
 
1665
                                                  ((__POLARITY__) == TIM_CLEARINPUTPOLARITY_NONINVERTED))
-
 
1666
 
-
 
1667
#define IS_TIM_CLEARINPUT_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV1) || \
-
 
1668
                                                    ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV2) || \
-
 
1669
                                                    ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV4) || \
-
 
1670
                                                    ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV8))
-
 
1671
 
-
 
1672
#define IS_TIM_CLEARINPUT_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
-
 
1673
 
-
 
1674
#define IS_TIM_OSSR_STATE(__STATE__)       (((__STATE__) == TIM_OSSR_ENABLE) || \
-
 
1675
                                            ((__STATE__) == TIM_OSSR_DISABLE))
-
 
1676
 
-
 
1677
#define IS_TIM_OSSI_STATE(__STATE__)       (((__STATE__) == TIM_OSSI_ENABLE) || \
-
 
1678
                                            ((__STATE__) == TIM_OSSI_DISABLE))
-
 
1679
 
-
 
1680
#define IS_TIM_LOCK_LEVEL(__LEVEL__)       (((__LEVEL__) == TIM_LOCKLEVEL_OFF) || \
-
 
1681
                                            ((__LEVEL__) == TIM_LOCKLEVEL_1)   || \
-
 
1682
                                            ((__LEVEL__) == TIM_LOCKLEVEL_2)   || \
-
 
1683
                                            ((__LEVEL__) == TIM_LOCKLEVEL_3))
-
 
1684
 
-
 
1685
#define IS_TIM_BREAK_FILTER(__BRKFILTER__) ((__BRKFILTER__) <= 0xFUL)
-
 
1686
 
-
 
1687
 
-
 
1688
#define IS_TIM_BREAK_STATE(__STATE__)      (((__STATE__) == TIM_BREAK_ENABLE) || \
-
 
1689
                                            ((__STATE__) == TIM_BREAK_DISABLE))
-
 
1690
 
-
 
1691
#define IS_TIM_BREAK_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKPOLARITY_LOW) || \
-
 
1692
                                             ((__POLARITY__) == TIM_BREAKPOLARITY_HIGH))
-
 
1693
 
-
 
1694
#define IS_TIM_AUTOMATIC_OUTPUT_STATE(__STATE__) (((__STATE__) == TIM_AUTOMATICOUTPUT_ENABLE) || \
-
 
1695
                                                  ((__STATE__) == TIM_AUTOMATICOUTPUT_DISABLE))
-
 
1696
 
-
 
1697
#define IS_TIM_TRGO_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO_RESET)  || \
-
 
1698
                                        ((__SOURCE__) == TIM_TRGO_ENABLE) || \
-
 
1699
                                        ((__SOURCE__) == TIM_TRGO_UPDATE) || \
-
 
1700
                                        ((__SOURCE__) == TIM_TRGO_OC1)    || \
-
 
1701
                                        ((__SOURCE__) == TIM_TRGO_OC1REF) || \
-
 
1702
                                        ((__SOURCE__) == TIM_TRGO_OC2REF) || \
-
 
1703
                                        ((__SOURCE__) == TIM_TRGO_OC3REF) || \
-
 
1704
                                        ((__SOURCE__) == TIM_TRGO_OC4REF))
-
 
1705
 
-
 
1706
#define IS_TIM_MSM_STATE(__STATE__)      (((__STATE__) == TIM_MASTERSLAVEMODE_ENABLE) || \
-
 
1707
                                          ((__STATE__) == TIM_MASTERSLAVEMODE_DISABLE))
-
 
1708
 
-
 
1709
#define IS_TIM_SLAVE_MODE(__MODE__) (((__MODE__) == TIM_SLAVEMODE_DISABLE)   || \
-
 
1710
                                     ((__MODE__) == TIM_SLAVEMODE_RESET)     || \
-
 
1711
                                     ((__MODE__) == TIM_SLAVEMODE_GATED)     || \
-
 
1712
                                     ((__MODE__) == TIM_SLAVEMODE_TRIGGER)   || \
-
 
1713
                                     ((__MODE__) == TIM_SLAVEMODE_EXTERNAL1))
-
 
1714
 
-
 
1715
#define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1)               || \
-
 
1716
                                   ((__MODE__) == TIM_OCMODE_PWM2))
-
 
1717
 
-
 
1718
#define IS_TIM_OC_MODE(__MODE__)  (((__MODE__) == TIM_OCMODE_TIMING)             || \
-
 
1719
                                   ((__MODE__) == TIM_OCMODE_ACTIVE)             || \
-
 
1720
                                   ((__MODE__) == TIM_OCMODE_INACTIVE)           || \
-
 
1721
                                   ((__MODE__) == TIM_OCMODE_TOGGLE)             || \
-
 
1722
                                   ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE)      || \
-
 
1723
                                   ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE))
-
 
1724
 
-
 
1725
#define IS_TIM_TRIGGER_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
-
 
1726
                                                 ((__SELECTION__) == TIM_TS_ITR1) || \
-
 
1727
                                                 ((__SELECTION__) == TIM_TS_ITR2) || \
-
 
1728
                                                 ((__SELECTION__) == TIM_TS_ITR3) || \
-
 
1729
                                                 ((__SELECTION__) == TIM_TS_TI1F_ED) || \
-
 
1730
                                                 ((__SELECTION__) == TIM_TS_TI1FP1) || \
-
 
1731
                                                 ((__SELECTION__) == TIM_TS_TI2FP2) || \
-
 
1732
                                                 ((__SELECTION__) == TIM_TS_ETRF))
-
 
1733
 
-
 
1734
#define IS_TIM_INTERNAL_TRIGGEREVENT_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
-
 
1735
                                                               ((__SELECTION__) == TIM_TS_ITR1) || \
-
 
1736
                                                               ((__SELECTION__) == TIM_TS_ITR2) || \
-
 
1737
                                                               ((__SELECTION__) == TIM_TS_ITR3) || \
-
 
1738
                                                               ((__SELECTION__) == TIM_TS_NONE))
-
 
1739
 
-
 
1740
#define IS_TIM_TRIGGERPOLARITY(__POLARITY__)   (((__POLARITY__) == TIM_TRIGGERPOLARITY_INVERTED   ) || \
-
 
1741
                                                ((__POLARITY__) == TIM_TRIGGERPOLARITY_NONINVERTED) || \
-
 
1742
                                                ((__POLARITY__) == TIM_TRIGGERPOLARITY_RISING     ) || \
-
 
1743
                                                ((__POLARITY__) == TIM_TRIGGERPOLARITY_FALLING    ) || \
-
 
1744
                                                ((__POLARITY__) == TIM_TRIGGERPOLARITY_BOTHEDGE   ))
-
 
1745
 
-
 
1746
#define IS_TIM_TRIGGERPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV1) || \
-
 
1747
                                                ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV2) || \
-
 
1748
                                                ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV4) || \
-
 
1749
                                                ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV8))
-
 
1750
 
-
 
1751
#define IS_TIM_TRIGGERFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
-
 
1752
 
-
 
1753
#define IS_TIM_TI1SELECTION(__TI1SELECTION__)  (((__TI1SELECTION__) == TIM_TI1SELECTION_CH1) || \
-
 
1754
                                                ((__TI1SELECTION__) == TIM_TI1SELECTION_XORCOMBINATION))
-
 
1755
 
-
 
1756
#define IS_TIM_DMA_LENGTH(__LENGTH__)      (((__LENGTH__) == TIM_DMABURSTLENGTH_1TRANSFER)   || \
-
 
1757
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_2TRANSFERS)  || \
-
 
1758
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_3TRANSFERS)  || \
-
 
1759
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_4TRANSFERS)  || \
-
 
1760
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_5TRANSFERS)  || \
-
 
1761
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_6TRANSFERS)  || \
-
 
1762
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_7TRANSFERS)  || \
-
 
1763
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_8TRANSFERS)  || \
-
 
1764
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_9TRANSFERS)  || \
-
 
1765
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_10TRANSFERS) || \
-
 
1766
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_11TRANSFERS) || \
-
 
1767
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_12TRANSFERS) || \
-
 
1768
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_13TRANSFERS) || \
-
 
1769
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_14TRANSFERS) || \
-
 
1770
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_15TRANSFERS) || \
-
 
1771
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_16TRANSFERS) || \
-
 
1772
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_17TRANSFERS) || \
-
 
1773
                                            ((__LENGTH__) == TIM_DMABURSTLENGTH_18TRANSFERS))
-
 
1774
 
-
 
1775
#define IS_TIM_DMA_DATA_LENGTH(LENGTH) (((LENGTH) >= 0x1U) && ((LENGTH) < 0x10000U))
-
 
1776
 
-
 
1777
#define IS_TIM_IC_FILTER(__ICFILTER__)   ((__ICFILTER__) <= 0xFU)
-
 
1778
 
-
 
1779
#define IS_TIM_DEADTIME(__DEADTIME__)    ((__DEADTIME__) <= 0xFFU)
-
 
1780
 
-
 
1781
#define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) ((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER)
-
 
1782
 
-
 
1783
#define TIM_SET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__, __ICPSC__) \
-
 
1784
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= (__ICPSC__)) :\
-
 
1785
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= ((__ICPSC__) << 8U)) :\
-
 
1786
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= (__ICPSC__)) :\
-
 
1787
   ((__HANDLE__)->Instance->CCMR2 |= ((__ICPSC__) << 8U)))
-
 
1788
 
-
 
1789
#define TIM_RESET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__) \
-
 
1790
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC) :\
-
 
1791
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC) :\
-
 
1792
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC) :\
-
 
1793
   ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC))
-
 
1794
 
-
 
1795
#define TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
-
 
1796
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER |= (__POLARITY__)) :\
-
 
1797
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 4U)) :\
-
 
1798
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 8U)) :\
-
 
1799
   ((__HANDLE__)->Instance->CCER |= (((__POLARITY__) << 12U))))
-
 
1800
 
-
 
1801
#define TIM_RESET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__) \
-
 
1802
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP)) :\
-
 
1803
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP)) :\
-
 
1804
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC3P)) :\
-
 
1805
   ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC4P)))
-
 
1806
 
-
 
1807
#define TIM_CHANNEL_STATE_GET(__HANDLE__, __CHANNEL__)\
-
 
1808
  (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelState[0] :\
-
 
1809
   ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelState[1] :\
-
 
1810
   ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelState[2] :\
-
 
1811
   (__HANDLE__)->ChannelState[3])
-
 
1812
 
-
 
1813
#define TIM_CHANNEL_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
-
 
1814
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__)) :\
-
 
1815
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__)) :\
-
 
1816
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__)) :\
-
 
1817
   ((__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__)))
-
 
1818
 
-
 
1819
#define TIM_CHANNEL_STATE_SET_ALL(__HANDLE__,  __CHANNEL_STATE__) do { \
-
 
1820
  (__HANDLE__)->ChannelState[0]  = (__CHANNEL_STATE__);  \
-
 
1821
  (__HANDLE__)->ChannelState[1]  = (__CHANNEL_STATE__);  \
-
 
1822
  (__HANDLE__)->ChannelState[2]  = (__CHANNEL_STATE__);  \
-
 
1823
  (__HANDLE__)->ChannelState[3]  = (__CHANNEL_STATE__);  \
-
 
1824
 } while(0)
-
 
1825
 
-
 
1826
#define TIM_CHANNEL_N_STATE_GET(__HANDLE__, __CHANNEL__)\
-
 
1827
  (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelNState[0] :\
-
 
1828
   ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelNState[1] :\
-
 
1829
   ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelNState[2] :\
-
 
1830
   (__HANDLE__)->ChannelNState[3])
-
 
1831
 
-
 
1832
#define TIM_CHANNEL_N_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
-
 
1833
  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelNState[0] = (__CHANNEL_STATE__)) :\
-
 
1834
   ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelNState[1] = (__CHANNEL_STATE__)) :\
-
 
1835
   ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelNState[2] = (__CHANNEL_STATE__)) :\
-
 
1836
   ((__HANDLE__)->ChannelNState[3] = (__CHANNEL_STATE__)))
-
 
1837
 
-
 
1838
#define TIM_CHANNEL_N_STATE_SET_ALL(__HANDLE__,  __CHANNEL_STATE__) do { \
-
 
1839
  (__HANDLE__)->ChannelNState[0] = (__CHANNEL_STATE__);  \
-
 
1840
  (__HANDLE__)->ChannelNState[1] = (__CHANNEL_STATE__);  \
-
 
1841
  (__HANDLE__)->ChannelNState[2] = (__CHANNEL_STATE__);  \
-
 
1842
  (__HANDLE__)->ChannelNState[3] = (__CHANNEL_STATE__);  \
-
 
1843
 } while(0)
1573
 
1844
 
1574
/**
1845
/**
1575
  * @}
1846
  * @}
1576
  */
1847
  */
-
 
1848
/* End of private macros -----------------------------------------------------*/
1577
 
1849
 
1578
/* Include TIM HAL Extension module */
1850
/* Include TIM HAL Extended module */
1579
#include "stm32f1xx_hal_tim_ex.h"
1851
#include "stm32f1xx_hal_tim_ex.h"
1580
 
1852
 
1581
/* Exported functions --------------------------------------------------------*/
1853
/* Exported functions --------------------------------------------------------*/
1582
/** @addtogroup TIM_Exported_Functions
1854
/** @addtogroup TIM_Exported_Functions TIM Exported Functions
1583
  * @{
1855
  * @{
1584
  */
1856
  */
1585
 
1857
 
1586
/** @addtogroup TIM_Exported_Functions_Group1
1858
/** @addtogroup TIM_Exported_Functions_Group1 TIM Time Base functions
-
 
1859
  *  @brief   Time Base functions
1587
 * @{
1860
  * @{
1588
 */
1861
  */
1589
/* Time Base functions ********************************************************/
1862
/* Time Base functions ********************************************************/
1590
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim);
1863
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim);
1591
HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim);
1864
HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim);
1592
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim);
1865
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim);
1593
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim);
1866
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim);
Line 1602... Line 1875...
1602
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim);
1875
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim);
1603
/**
1876
/**
1604
  * @}
1877
  * @}
1605
  */
1878
  */
1606
 
1879
 
1607
/** @addtogroup TIM_Exported_Functions_Group2
1880
/** @addtogroup TIM_Exported_Functions_Group2 TIM Output Compare functions
-
 
1881
  *  @brief   TIM Output Compare functions
1608
 * @{
1882
  * @{
1609
 */
1883
  */
1610
/* Timer Output Compare functions **********************************************/
1884
/* Timer Output Compare functions *********************************************/
1611
HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim);
1885
HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim);
1612
HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim);
1886
HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim);
1613
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim);
1887
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim);
1614
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim);
1888
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim);
1615
/* Blocking mode: Polling */
1889
/* Blocking mode: Polling */
Line 1619... Line 1893...
1619
HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1893
HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1620
HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1894
HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1621
/* Non-Blocking mode: DMA */
1895
/* Non-Blocking mode: DMA */
1622
HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
1896
HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
1623
HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1897
HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1624
 
-
 
1625
/**
1898
/**
1626
  * @}
1899
  * @}
1627
  */
1900
  */
1628
 
1901
 
1629
/** @addtogroup TIM_Exported_Functions_Group3
1902
/** @addtogroup TIM_Exported_Functions_Group3 TIM PWM functions
-
 
1903
  *  @brief   TIM PWM functions
1630
 * @{
1904
  * @{
1631
 */
1905
  */
1632
/* Timer PWM functions *********************************************************/
1906
/* Timer PWM functions ********************************************************/
1633
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim);
1907
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim);
1634
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim);
1908
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim);
1635
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim);
1909
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim);
1636
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim);
1910
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim);
1637
/* Blocking mode: Polling */
1911
/* Blocking mode: Polling */
Line 1645... Line 1919...
1645
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1919
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1646
/**
1920
/**
1647
  * @}
1921
  * @}
1648
  */
1922
  */
1649
 
1923
 
1650
/** @addtogroup TIM_Exported_Functions_Group4
1924
/** @addtogroup TIM_Exported_Functions_Group4 TIM Input Capture functions
-
 
1925
  *  @brief   TIM Input Capture functions
1651
 * @{
1926
  * @{
1652
 */
1927
  */
1653
/* Timer Input Capture functions ***********************************************/
1928
/* Timer Input Capture functions **********************************************/
1654
HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim);
1929
HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim);
1655
HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim);
1930
HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim);
1656
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim);
1931
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim);
1657
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim);
1932
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim);
1658
/* Blocking mode: Polling */
1933
/* Blocking mode: Polling */
Line 1666... Line 1941...
1666
HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1941
HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1667
/**
1942
/**
1668
  * @}
1943
  * @}
1669
  */
1944
  */
1670
 
1945
 
1671
/** @addtogroup TIM_Exported_Functions_Group5
1946
/** @addtogroup TIM_Exported_Functions_Group5 TIM One Pulse functions
-
 
1947
  *  @brief   TIM One Pulse functions
1672
 * @{
1948
  * @{
1673
 */
1949
  */
1674
/* Timer One Pulse functions ***************************************************/
1950
/* Timer One Pulse functions **************************************************/
1675
HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode);
1951
HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode);
1676
HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim);
1952
HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim);
1677
void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim);
1953
void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim);
1678
void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim);
1954
void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim);
1679
/* Blocking mode: Polling */
1955
/* Blocking mode: Polling */
Line 1684... Line 1960...
1684
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
1960
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
1685
/**
1961
/**
1686
  * @}
1962
  * @}
1687
  */
1963
  */
1688
 
1964
 
1689
/** @addtogroup TIM_Exported_Functions_Group6
1965
/** @addtogroup TIM_Exported_Functions_Group6 TIM Encoder functions
-
 
1966
  *  @brief   TIM Encoder functions
1690
 * @{
1967
  * @{
1691
 */
1968
  */
1692
/* Timer Encoder functions *****************************************************/
1969
/* Timer Encoder functions ****************************************************/
1693
HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim,  TIM_Encoder_InitTypeDef* sConfig);
1970
HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim,  TIM_Encoder_InitTypeDef *sConfig);
1694
HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim);
1971
HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim);
1695
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim);
1972
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim);
1696
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim);
1973
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim);
1697
 /* Blocking mode: Polling */
1974
/* Blocking mode: Polling */
1698
HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
1975
HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
1699
HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
1976
HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
1700
/* Non-Blocking mode: Interrupt */
1977
/* Non-Blocking mode: Interrupt */
1701
HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1978
HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1702
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1979
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1703
/* Non-Blocking mode: DMA */
1980
/* Non-Blocking mode: DMA */
1704
HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1, uint32_t *pData2, uint16_t Length);
1981
HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1,
-
 
1982
                                            uint32_t *pData2, uint16_t Length);
1705
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1983
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1706
 
-
 
1707
/**
1984
/**
1708
  * @}
1985
  * @}
1709
  */
1986
  */
1710
 
1987
 
1711
/** @addtogroup TIM_Exported_Functions_Group7
1988
/** @addtogroup TIM_Exported_Functions_Group7 TIM IRQ handler management
-
 
1989
  *  @brief   IRQ handler management
1712
 * @{
1990
  * @{
1713
 */
1991
  */
1714
/* Interrupt Handler functions  **********************************************/
1992
/* Interrupt Handler functions  ***********************************************/
1715
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim);
1993
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim);
1716
/**
1994
/**
1717
  * @}
1995
  * @}
1718
  */
1996
  */
1719
 
1997
 
1720
/** @addtogroup TIM_Exported_Functions_Group8
1998
/** @defgroup TIM_Exported_Functions_Group8 TIM Peripheral Control functions
-
 
1999
  *  @brief   Peripheral Control functions
1721
 * @{
2000
  * @{
1722
 */
2001
  */
1723
/* Control functions  *********************************************************/
2002
/* Control functions  *********************************************************/
1724
HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef* sConfig, uint32_t Channel);
2003
HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfig, uint32_t Channel);
1725
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef* sConfig, uint32_t Channel);
2004
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfig, uint32_t Channel);
1726
HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_IC_InitTypeDef* sConfig, uint32_t Channel);
2005
HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_IC_InitTypeDef *sConfig, uint32_t Channel);
1727
HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef* sConfig, uint32_t OutputChannel,  uint32_t InputChannel);
2006
HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig,
-
 
2007
                                                 uint32_t OutputChannel,  uint32_t InputChannel);
1728
HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, TIM_ClearInputConfigTypeDef * sClearInputConfig, uint32_t Channel);
2008
HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, TIM_ClearInputConfigTypeDef *sClearInputConfig,
-
 
2009
                                           uint32_t Channel);
1729
HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, TIM_ClockConfigTypeDef * sClockSourceConfig);
2010
HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, TIM_ClockConfigTypeDef *sClockSourceConfig);
1730
HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection);
2011
HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection);
1731
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchronization(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef * sSlaveConfig);
2012
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef *sSlaveConfig);
1732
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchronization_IT(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef * sSlaveConfig);
2013
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef *sSlaveConfig);
1733
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, \
2014
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
1734
                                              uint32_t  *BurstBuffer, uint32_t  BurstLength);
2015
                                              uint32_t BurstRequestSrc, uint32_t  *BurstBuffer, uint32_t  BurstLength);
-
 
2016
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
-
 
2017
                                                   uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength,
-
 
2018
                                                   uint32_t DataLength);
1735
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
2019
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
1736
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, \
2020
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
1737
                                              uint32_t  *BurstBuffer, uint32_t  BurstLength);
2021
                                             uint32_t BurstRequestSrc, uint32_t  *BurstBuffer, uint32_t  BurstLength);
-
 
2022
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
-
 
2023
                                                  uint32_t BurstRequestSrc, uint32_t  *BurstBuffer, uint32_t  BurstLength,
-
 
2024
                                                  uint32_t  DataLength);
1738
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
2025
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
1739
HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource);
2026
HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource);
1740
uint32_t HAL_TIM_ReadCapturedValue(TIM_HandleTypeDef *htim, uint32_t Channel);
2027
uint32_t HAL_TIM_ReadCapturedValue(TIM_HandleTypeDef *htim, uint32_t Channel);
1741
 
-
 
1742
/**
2028
/**
1743
  * @}
2029
  * @}
1744
  */
2030
  */
1745
 
2031
 
1746
/** @addtogroup TIM_Exported_Functions_Group9
2032
/** @defgroup TIM_Exported_Functions_Group9 TIM Callbacks functions
-
 
2033
  *  @brief   TIM Callbacks functions
1747
 * @{
2034
  * @{
1748
 */
2035
  */
1749
/* Callback in non blocking modes (Interrupt and DMA) *************************/
2036
/* Callback in non blocking modes (Interrupt and DMA) *************************/
1750
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
2037
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
-
 
2038
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim);
1751
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim);
2039
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim);
1752
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);
2040
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);
-
 
2041
void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim);
1753
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim);
2042
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim);
-
 
2043
void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim);
1754
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim);
2044
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim);
-
 
2045
void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim);
1755
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim);
2046
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim);
-
 
2047
 
-
 
2048
/* Callbacks Register/UnRegister functions  ***********************************/
-
 
2049
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
-
 
2050
HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID,
-
 
2051
                                           pTIM_CallbackTypeDef pCallback);
-
 
2052
HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID);
-
 
2053
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
-
 
2054
 
1756
/**
2055
/**
1757
  * @}
2056
  * @}
1758
  */
2057
  */
1759
 
2058
 
1760
/** @addtogroup TIM_Exported_Functions_Group10
2059
/** @defgroup TIM_Exported_Functions_Group10 TIM Peripheral State functions
-
 
2060
  *  @brief  Peripheral State functions
1761
 * @{
2061
  * @{
1762
 */
2062
  */
1763
/* Peripheral State functions  **************************************************/
2063
/* Peripheral State functions  ************************************************/
1764
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(TIM_HandleTypeDef *htim);
2064
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(TIM_HandleTypeDef *htim);
1765
HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(TIM_HandleTypeDef *htim);
2065
HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(TIM_HandleTypeDef *htim);
1766
HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(TIM_HandleTypeDef *htim);
2066
HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(TIM_HandleTypeDef *htim);
1767
HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(TIM_HandleTypeDef *htim);
2067
HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(TIM_HandleTypeDef *htim);
1768
HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(TIM_HandleTypeDef *htim);
2068
HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(TIM_HandleTypeDef *htim);
1769
HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(TIM_HandleTypeDef *htim);
2069
HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(TIM_HandleTypeDef *htim);
1770
 
2070
 
-
 
2071
/* Peripheral Channel state functions  ************************************************/
-
 
2072
HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(TIM_HandleTypeDef *htim);
-
 
2073
HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(TIM_HandleTypeDef *htim,  uint32_t Channel);
-
 
2074
HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(TIM_HandleTypeDef *htim);
-
 
2075
/**
-
 
2076
  * @}
-
 
2077
  */
-
 
2078
 
1771
/**
2079
/**
1772
  * @}
2080
  * @}
1773
  */
2081
  */
-
 
2082
/* End of exported functions -------------------------------------------------*/
-
 
2083
 
-
 
2084
/* Private functions----------------------------------------------------------*/
-
 
2085
/** @defgroup TIM_Private_Functions TIM Private Functions
-
 
2086
  * @{
-
 
2087
  */
-
 
2088
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure);
-
 
2089
void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter);
-
 
2090
void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config);
-
 
2091
void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler,
-
 
2092
                       uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);
-
 
2093
 
-
 
2094
void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma);
-
 
2095
void TIM_DMAError(DMA_HandleTypeDef *hdma);
-
 
2096
void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma);
-
 
2097
void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma);
-
 
2098
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);
-
 
2099
 
-
 
2100
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
-
 
2101
void TIM_ResetCallback(TIM_HandleTypeDef *htim);
-
 
2102
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
1774
 
2103
 
1775
/**
2104
/**
1776
  * @}
2105
  * @}
1777
  */
2106
  */
-
 
2107
/* End of private functions --------------------------------------------------*/
1778
 
2108
 
1779
/**
2109
/**
1780
  * @}
2110
  * @}
1781
  */
2111
  */
1782
 
2112
 
Line 1786... Line 2116...
1786
 
2116
 
1787
#ifdef __cplusplus
2117
#ifdef __cplusplus
1788
}
2118
}
1789
#endif
2119
#endif
1790
 
2120
 
1791
#endif /* __STM32F1xx_HAL_TIM_H */
2121
#endif /* STM32F1xx_HAL_TIM_H */
1792
 
2122
 
1793
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
2123
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/