Subversion Repositories EDIS_Ignition

Rev

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

Rev 2 Rev 18
Line 1... Line 1...
1
/**
1
/**
2
  ******************************************************************************
2
  ******************************************************************************
3
  * @file    stm32f1xx_hal_dma.h
3
  * @file    stm32f1xx_hal_dma.h
4
  * @author  MCD Application Team
4
  * @author  MCD Application Team
5
  * @brief   Header file of DMA HAL module.
5
  * @brief   Header file of DMA HAL module.
6
  ******************************************************************************
6
  ******************************************************************************
7
  * @attention
7
  * @attention
8
  *
8
  *
9
  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
9
  * Copyright (c) 2016 STMicroelectronics.
10
  * All rights reserved.</center></h2>
10
  * All rights reserved.
11
  *
11
  *
12
  * This software component is licensed by ST under BSD 3-Clause license,
12
  * This software is licensed under terms that can be found in the LICENSE file in
13
  * the "License"; You may not use this file except in compliance with the
13
  * the root directory of this software component.
14
  * License. You may obtain a copy of the License at:
14
  * If no LICENSE file comes with this software, it is provided AS-IS.
15
  *                        opensource.org/licenses/BSD-3-Clause
15
  *
16
  *
16
  ******************************************************************************
17
  ******************************************************************************
17
  */
18
  */
18
 
19
 
19
/* Define to prevent recursive inclusion -------------------------------------*/
20
/* Define to prevent recursive inclusion -------------------------------------*/
20
#ifndef __STM32F1xx_HAL_DMA_H
21
#ifndef __STM32F1xx_HAL_DMA_H
21
#define __STM32F1xx_HAL_DMA_H
22
#define __STM32F1xx_HAL_DMA_H
22
 
23
 
23
#ifdef __cplusplus
24
#ifdef __cplusplus
24
 extern "C" {
25
 extern "C" {
25
#endif
26
#endif
26
 
27
 
27
/* Includes ------------------------------------------------------------------*/
28
/* Includes ------------------------------------------------------------------*/
28
#include "stm32f1xx_hal_def.h"
29
#include "stm32f1xx_hal_def.h"
29
 
30
 
30
/** @addtogroup STM32F1xx_HAL_Driver
31
/** @addtogroup STM32F1xx_HAL_Driver
31
  * @{
32
  * @{
32
  */
33
  */
33
 
34
 
34
/** @addtogroup DMA
35
/** @addtogroup DMA
35
  * @{
36
  * @{
36
  */
37
  */
37
 
38
 
38
/* Exported types ------------------------------------------------------------*/
39
/* Exported types ------------------------------------------------------------*/
39
 
40
 
40
/** @defgroup DMA_Exported_Types DMA Exported Types
41
/** @defgroup DMA_Exported_Types DMA Exported Types
41
  * @{
42
  * @{
42
  */
43
  */
43
 
44
 
44
/**
45
/**
45
  * @brief  DMA Configuration Structure definition
46
  * @brief  DMA Configuration Structure definition
46
  */
47
  */
47
typedef struct
48
typedef struct
48
{
49
{
49
  uint32_t Direction;                 /*!< Specifies if the data will be transferred from memory to peripheral,
50
  uint32_t Direction;                 /*!< Specifies if the data will be transferred from memory to peripheral,
50
                                           from memory to memory or from peripheral to memory.
51
                                           from memory to memory or from peripheral to memory.
51
                                           This parameter can be a value of @ref DMA_Data_transfer_direction */
52
                                           This parameter can be a value of @ref DMA_Data_transfer_direction */
52
 
53
 
53
  uint32_t PeriphInc;                 /*!< Specifies whether the Peripheral address register should be incremented or not.
54
  uint32_t PeriphInc;                 /*!< Specifies whether the Peripheral address register should be incremented or not.
54
                                           This parameter can be a value of @ref DMA_Peripheral_incremented_mode */
55
                                           This parameter can be a value of @ref DMA_Peripheral_incremented_mode */
55
 
56
 
56
  uint32_t MemInc;                    /*!< Specifies whether the memory address register should be incremented or not.
57
  uint32_t MemInc;                    /*!< Specifies whether the memory address register should be incremented or not.
57
                                           This parameter can be a value of @ref DMA_Memory_incremented_mode */
58
                                           This parameter can be a value of @ref DMA_Memory_incremented_mode */
58
 
59
 
59
  uint32_t PeriphDataAlignment;       /*!< Specifies the Peripheral data width.
60
  uint32_t PeriphDataAlignment;       /*!< Specifies the Peripheral data width.
60
                                           This parameter can be a value of @ref DMA_Peripheral_data_size */
61
                                           This parameter can be a value of @ref DMA_Peripheral_data_size */
61
 
62
 
62
  uint32_t MemDataAlignment;          /*!< Specifies the Memory data width.
63
  uint32_t MemDataAlignment;          /*!< Specifies the Memory data width.
63
                                           This parameter can be a value of @ref DMA_Memory_data_size */
64
                                           This parameter can be a value of @ref DMA_Memory_data_size */
64
 
65
 
65
  uint32_t Mode;                      /*!< Specifies the operation mode of the DMAy Channelx.
66
  uint32_t Mode;                      /*!< Specifies the operation mode of the DMAy Channelx.
66
                                           This parameter can be a value of @ref DMA_mode
67
                                           This parameter can be a value of @ref DMA_mode
67
                                           @note The circular buffer mode cannot be used if the memory-to-memory
68
                                           @note The circular buffer mode cannot be used if the memory-to-memory
68
                                                 data transfer is configured on the selected Channel */
69
                                                 data transfer is configured on the selected Channel */
69
 
70
 
70
  uint32_t Priority;                  /*!< Specifies the software priority for the DMAy Channelx.
71
  uint32_t Priority;                  /*!< Specifies the software priority for the DMAy Channelx.
71
                                           This parameter can be a value of @ref DMA_Priority_level */
72
                                           This parameter can be a value of @ref DMA_Priority_level */
72
} DMA_InitTypeDef;
73
} DMA_InitTypeDef;
73
 
74
 
74
/**
75
/**
75
  * @brief  HAL DMA State structures definition
76
  * @brief  HAL DMA State structures definition
76
  */
77
  */
77
typedef enum
78
typedef enum
78
{
79
{
79
  HAL_DMA_STATE_RESET             = 0x00U,  /*!< DMA not yet initialized or disabled    */
80
  HAL_DMA_STATE_RESET             = 0x00U,  /*!< DMA not yet initialized or disabled    */
80
  HAL_DMA_STATE_READY             = 0x01U,  /*!< DMA initialized and ready for use      */
81
  HAL_DMA_STATE_READY             = 0x01U,  /*!< DMA initialized and ready for use      */
81
  HAL_DMA_STATE_BUSY              = 0x02U,  /*!< DMA process is ongoing                 */
82
  HAL_DMA_STATE_BUSY              = 0x02U,  /*!< DMA process is ongoing                 */
82
  HAL_DMA_STATE_TIMEOUT           = 0x03U   /*!< DMA timeout state                      */
83
  HAL_DMA_STATE_TIMEOUT           = 0x03U   /*!< DMA timeout state                      */
83
}HAL_DMA_StateTypeDef;
84
}HAL_DMA_StateTypeDef;
84
 
85
 
85
/**
86
/**
86
  * @brief  HAL DMA Error Code structure definition
87
  * @brief  HAL DMA Error Code structure definition
87
  */
88
  */
88
typedef enum
89
typedef enum
89
{
90
{
90
  HAL_DMA_FULL_TRANSFER           = 0x00U,    /*!< Full transfer     */
91
  HAL_DMA_FULL_TRANSFER           = 0x00U,    /*!< Full transfer     */
91
  HAL_DMA_HALF_TRANSFER           = 0x01U     /*!< Half Transfer     */
92
  HAL_DMA_HALF_TRANSFER           = 0x01U     /*!< Half Transfer     */
92
}HAL_DMA_LevelCompleteTypeDef;
93
}HAL_DMA_LevelCompleteTypeDef;
93
 
94
 
94
/**
95
/**
95
  * @brief  HAL DMA Callback ID structure definition
96
  * @brief  HAL DMA Callback ID structure definition
96
  */
97
  */
97
typedef enum
98
typedef enum
98
{
99
{
99
  HAL_DMA_XFER_CPLT_CB_ID          = 0x00U,    /*!< Full transfer     */
100
  HAL_DMA_XFER_CPLT_CB_ID          = 0x00U,    /*!< Full transfer     */
100
  HAL_DMA_XFER_HALFCPLT_CB_ID      = 0x01U,    /*!< Half transfer     */
101
  HAL_DMA_XFER_HALFCPLT_CB_ID      = 0x01U,    /*!< Half transfer     */
101
  HAL_DMA_XFER_ERROR_CB_ID         = 0x02U,    /*!< Error             */
102
  HAL_DMA_XFER_ERROR_CB_ID         = 0x02U,    /*!< Error             */
102
  HAL_DMA_XFER_ABORT_CB_ID         = 0x03U,    /*!< Abort             */
103
  HAL_DMA_XFER_ABORT_CB_ID         = 0x03U,    /*!< Abort             */
103
  HAL_DMA_XFER_ALL_CB_ID           = 0x04U     /*!< All               */
104
  HAL_DMA_XFER_ALL_CB_ID           = 0x04U     /*!< All               */
104
   
105
   
105
}HAL_DMA_CallbackIDTypeDef;
106
}HAL_DMA_CallbackIDTypeDef;
106
 
107
 
107
/**
108
/**
108
  * @brief  DMA handle Structure definition
109
  * @brief  DMA handle Structure definition
109
  */
110
  */
110
typedef struct __DMA_HandleTypeDef
111
typedef struct __DMA_HandleTypeDef
111
{
112
{
112
  DMA_Channel_TypeDef        *Instance;                                                    /*!< Register base address                  */
113
  DMA_Channel_TypeDef   *Instance;                       /*!< Register base address                  */
113
 
114
 
114
  DMA_InitTypeDef            Init;                                                         /*!< DMA communication parameters           */
115
  DMA_InitTypeDef       Init;                            /*!< DMA communication parameters           */
115
 
116
 
116
  HAL_LockTypeDef            Lock;                                                         /*!< DMA locking object                     */
117
  HAL_LockTypeDef       Lock;                            /*!< DMA locking object                     */  
117
 
118
 
118
  __IO HAL_DMA_StateTypeDef  State;                                                        /*!< DMA transfer state                     */
119
  HAL_DMA_StateTypeDef  State;                           /*!< DMA transfer state                     */
119
 
120
 
120
  void                       *Parent;                                                      /*!< Parent object state                    */
121
  void                  *Parent;                                                      /*!< Parent object state                    */  
121
 
122
 
122
  void                       (* XferCpltCallback)( struct __DMA_HandleTypeDef * hdma);     /*!< DMA transfer complete callback         */
123
  void                  (* XferCpltCallback)( struct __DMA_HandleTypeDef * hdma);     /*!< DMA transfer complete callback         */
123
 
124
 
124
  void                       (* XferHalfCpltCallback)( struct __DMA_HandleTypeDef * hdma); /*!< DMA Half transfer complete callback    */
125
  void                  (* XferHalfCpltCallback)( struct __DMA_HandleTypeDef * hdma); /*!< DMA Half transfer complete callback    */
125
 
126
 
126
  void                       (* XferErrorCallback)( struct __DMA_HandleTypeDef * hdma);    /*!< DMA transfer error callback            */
127
  void                  (* XferErrorCallback)( struct __DMA_HandleTypeDef * hdma);    /*!< DMA transfer error callback            */
127
 
128
 
128
  void                       (* XferAbortCallback)( struct __DMA_HandleTypeDef * hdma);    /*!< DMA transfer abort callback            */
129
  void                  (* XferAbortCallback)( struct __DMA_HandleTypeDef * hdma);    /*!< DMA transfer abort callback            */  
129
 
130
 
130
  __IO uint32_t              ErrorCode;                                                    /*!< DMA Error code                         */
131
  __IO uint32_t         ErrorCode;                                                    /*!< DMA Error code                         */
131
 
132
 
132
  DMA_TypeDef                *DmaBaseAddress;                                             /*!< DMA Channel Base Address               */
133
  DMA_TypeDef            *DmaBaseAddress;                                             /*!< DMA Channel Base Address               */
133
 
134
 
134
  uint32_t                   ChannelIndex;                                                /*!< DMA Channel Index                      */
135
  uint32_t               ChannelIndex;                                                /*!< DMA Channel Index                      */  
135
 
136
 
136
} DMA_HandleTypeDef;    
137
} DMA_HandleTypeDef;    
137
/**
138
/**
138
  * @}
139
  * @}
139
  */
140
  */
140
 
141
 
141
/* Exported constants --------------------------------------------------------*/
142
/* Exported constants --------------------------------------------------------*/
142
 
143
 
143
/** @defgroup DMA_Exported_Constants DMA Exported Constants
144
/** @defgroup DMA_Exported_Constants DMA Exported Constants
144
  * @{
145
  * @{
145
  */
146
  */
146
 
147
 
147
/** @defgroup DMA_Error_Code DMA Error Code
148
/** @defgroup DMA_Error_Code DMA Error Code
148
  * @{
149
  * @{
149
  */
150
  */
150
#define HAL_DMA_ERROR_NONE                     0x00000000U    /*!< No error             */
151
#define HAL_DMA_ERROR_NONE                     0x00000000U    /*!< No error             */
151
#define HAL_DMA_ERROR_TE                       0x00000001U    /*!< Transfer error       */
152
#define HAL_DMA_ERROR_TE                       0x00000001U    /*!< Transfer error       */
152
#define HAL_DMA_ERROR_NO_XFER                  0x00000004U    /*!< no ongoing transfer  */
153
#define HAL_DMA_ERROR_NO_XFER                  0x00000004U    /*!< no ongoing transfer  */
153
#define HAL_DMA_ERROR_TIMEOUT                  0x00000020U    /*!< Timeout error        */
154
#define HAL_DMA_ERROR_TIMEOUT                  0x00000020U    /*!< Timeout error        */
154
#define HAL_DMA_ERROR_NOT_SUPPORTED            0x00000100U    /*!< Not supported mode                    */ 
155
#define HAL_DMA_ERROR_NOT_SUPPORTED            0x00000100U    /*!< Not supported mode                    */ 
155
/**
156
/**
156
  * @}
157
  * @}
157
  */
158
  */
158
 
159
 
159
/** @defgroup DMA_Data_transfer_direction DMA Data transfer direction
160
/** @defgroup DMA_Data_transfer_direction DMA Data transfer direction
160
  * @{
161
  * @{
161
  */
162
  */
162
#define DMA_PERIPH_TO_MEMORY         0x00000000U                 /*!< Peripheral to memory direction */
163
#define DMA_PERIPH_TO_MEMORY         0x00000000U                 /*!< Peripheral to memory direction */
163
#define DMA_MEMORY_TO_PERIPH         ((uint32_t)DMA_CCR_DIR)     /*!< Memory to peripheral direction */
164
#define DMA_MEMORY_TO_PERIPH         ((uint32_t)DMA_CCR_DIR)     /*!< Memory to peripheral direction */
164
#define DMA_MEMORY_TO_MEMORY         ((uint32_t)DMA_CCR_MEM2MEM) /*!< Memory to memory direction     */
165
#define DMA_MEMORY_TO_MEMORY         ((uint32_t)DMA_CCR_MEM2MEM) /*!< Memory to memory direction     */
165
 
166
 
166
/**
167
/**
167
  * @}
168
  * @}
168
  */
169
  */
169
 
170
 
170
/** @defgroup DMA_Peripheral_incremented_mode DMA Peripheral incremented mode
171
/** @defgroup DMA_Peripheral_incremented_mode DMA Peripheral incremented mode
171
  * @{
172
  * @{
172
  */
173
  */
173
#define DMA_PINC_ENABLE        ((uint32_t)DMA_CCR_PINC)  /*!< Peripheral increment mode Enable */
174
#define DMA_PINC_ENABLE        ((uint32_t)DMA_CCR_PINC)  /*!< Peripheral increment mode Enable */
174
#define DMA_PINC_DISABLE       0x00000000U               /*!< Peripheral increment mode Disable */
175
#define DMA_PINC_DISABLE       0x00000000U               /*!< Peripheral increment mode Disable */
175
/**
176
/**
176
  * @}
177
  * @}
177
  */
178
  */
178
 
179
 
179
/** @defgroup DMA_Memory_incremented_mode DMA Memory incremented mode
180
/** @defgroup DMA_Memory_incremented_mode DMA Memory incremented mode
180
  * @{
181
  * @{
181
  */
182
  */
182
#define DMA_MINC_ENABLE         ((uint32_t)DMA_CCR_MINC)  /*!< Memory increment mode Enable  */
183
#define DMA_MINC_ENABLE         ((uint32_t)DMA_CCR_MINC)  /*!< Memory increment mode Enable  */
183
#define DMA_MINC_DISABLE        0x00000000U               /*!< Memory increment mode Disable */
184
#define DMA_MINC_DISABLE        0x00000000U               /*!< Memory increment mode Disable */
184
/**
185
/**
185
  * @}
186
  * @}
186
  */
187
  */
187
 
188
 
188
/** @defgroup DMA_Peripheral_data_size DMA Peripheral data size
189
/** @defgroup DMA_Peripheral_data_size DMA Peripheral data size
189
  * @{
190
  * @{
190
  */
191
  */
191
#define DMA_PDATAALIGN_BYTE          0x00000000U                  /*!< Peripheral data alignment: Byte     */
192
#define DMA_PDATAALIGN_BYTE          0x00000000U                  /*!< Peripheral data alignment: Byte     */
192
#define DMA_PDATAALIGN_HALFWORD      ((uint32_t)DMA_CCR_PSIZE_0)  /*!< Peripheral data alignment: HalfWord */
193
#define DMA_PDATAALIGN_HALFWORD      ((uint32_t)DMA_CCR_PSIZE_0)  /*!< Peripheral data alignment: HalfWord */
193
#define DMA_PDATAALIGN_WORD          ((uint32_t)DMA_CCR_PSIZE_1)  /*!< Peripheral data alignment: Word     */
194
#define DMA_PDATAALIGN_WORD          ((uint32_t)DMA_CCR_PSIZE_1)  /*!< Peripheral data alignment: Word     */
194
/**
195
/**
195
  * @}
196
  * @}
196
  */
197
  */
197
 
198
 
198
/** @defgroup DMA_Memory_data_size DMA Memory data size
199
/** @defgroup DMA_Memory_data_size DMA Memory data size
199
  * @{
200
  * @{
200
  */
201
  */
201
#define DMA_MDATAALIGN_BYTE          0x00000000U                  /*!< Memory data alignment: Byte     */
202
#define DMA_MDATAALIGN_BYTE          0x00000000U                  /*!< Memory data alignment: Byte     */
202
#define DMA_MDATAALIGN_HALFWORD      ((uint32_t)DMA_CCR_MSIZE_0)  /*!< Memory data alignment: HalfWord */
203
#define DMA_MDATAALIGN_HALFWORD      ((uint32_t)DMA_CCR_MSIZE_0)  /*!< Memory data alignment: HalfWord */
203
#define DMA_MDATAALIGN_WORD          ((uint32_t)DMA_CCR_MSIZE_1)  /*!< Memory data alignment: Word     */
204
#define DMA_MDATAALIGN_WORD          ((uint32_t)DMA_CCR_MSIZE_1)  /*!< Memory data alignment: Word     */
204
/**
205
/**
205
  * @}
206
  * @}
206
  */
207
  */
207
 
208
 
208
/** @defgroup DMA_mode DMA mode
209
/** @defgroup DMA_mode DMA mode
209
  * @{
210
  * @{
210
  */
211
  */
211
#define DMA_NORMAL         0x00000000U                  /*!< Normal mode                  */
212
#define DMA_NORMAL         0x00000000U                  /*!< Normal mode                  */
212
#define DMA_CIRCULAR       ((uint32_t)DMA_CCR_CIRC)     /*!< Circular mode                */
213
#define DMA_CIRCULAR       ((uint32_t)DMA_CCR_CIRC)     /*!< Circular mode                */
213
/**
214
/**
214
  * @}
215
  * @}
215
  */
216
  */
216
 
217
 
217
/** @defgroup DMA_Priority_level DMA Priority level
218
/** @defgroup DMA_Priority_level DMA Priority level
218
  * @{
219
  * @{
219
  */
220
  */
220
#define DMA_PRIORITY_LOW             0x00000000U               /*!< Priority level : Low       */
221
#define DMA_PRIORITY_LOW             0x00000000U               /*!< Priority level : Low       */
221
#define DMA_PRIORITY_MEDIUM          ((uint32_t)DMA_CCR_PL_0)  /*!< Priority level : Medium    */
222
#define DMA_PRIORITY_MEDIUM          ((uint32_t)DMA_CCR_PL_0)  /*!< Priority level : Medium    */
222
#define DMA_PRIORITY_HIGH            ((uint32_t)DMA_CCR_PL_1)  /*!< Priority level : High      */
223
#define DMA_PRIORITY_HIGH            ((uint32_t)DMA_CCR_PL_1)  /*!< Priority level : High      */
223
#define DMA_PRIORITY_VERY_HIGH       ((uint32_t)DMA_CCR_PL)    /*!< Priority level : Very_High */
224
#define DMA_PRIORITY_VERY_HIGH       ((uint32_t)DMA_CCR_PL)    /*!< Priority level : Very_High */
224
/**
225
/**
225
  * @}
226
  * @}
226
  */
227
  */
227
 
228
 
228
 
229
 
229
/** @defgroup DMA_interrupt_enable_definitions DMA interrupt enable definitions
230
/** @defgroup DMA_interrupt_enable_definitions DMA interrupt enable definitions
230
  * @{
231
  * @{
231
  */
232
  */
232
#define DMA_IT_TC                         ((uint32_t)DMA_CCR_TCIE)
233
#define DMA_IT_TC                         ((uint32_t)DMA_CCR_TCIE)
233
#define DMA_IT_HT                         ((uint32_t)DMA_CCR_HTIE)
234
#define DMA_IT_HT                         ((uint32_t)DMA_CCR_HTIE)
234
#define DMA_IT_TE                         ((uint32_t)DMA_CCR_TEIE)
235
#define DMA_IT_TE                         ((uint32_t)DMA_CCR_TEIE)
235
/**
236
/**
236
  * @}
237
  * @}
237
  */
238
  */
238
 
239
 
239
/** @defgroup DMA_flag_definitions DMA flag definitions
240
/** @defgroup DMA_flag_definitions DMA flag definitions
240
  * @{
241
  * @{
241
  */
242
  */
242
#define DMA_FLAG_GL1                      0x00000001U
243
#define DMA_FLAG_GL1                      0x00000001U
243
#define DMA_FLAG_TC1                      0x00000002U
244
#define DMA_FLAG_TC1                      0x00000002U
244
#define DMA_FLAG_HT1                      0x00000004U
245
#define DMA_FLAG_HT1                      0x00000004U
245
#define DMA_FLAG_TE1                      0x00000008U
246
#define DMA_FLAG_TE1                      0x00000008U
246
#define DMA_FLAG_GL2                      0x00000010U
247
#define DMA_FLAG_GL2                      0x00000010U
247
#define DMA_FLAG_TC2                      0x00000020U
248
#define DMA_FLAG_TC2                      0x00000020U
248
#define DMA_FLAG_HT2                      0x00000040U
249
#define DMA_FLAG_HT2                      0x00000040U
249
#define DMA_FLAG_TE2                      0x00000080U
250
#define DMA_FLAG_TE2                      0x00000080U
250
#define DMA_FLAG_GL3                      0x00000100U
251
#define DMA_FLAG_GL3                      0x00000100U
251
#define DMA_FLAG_TC3                      0x00000200U
252
#define DMA_FLAG_TC3                      0x00000200U
252
#define DMA_FLAG_HT3                      0x00000400U
253
#define DMA_FLAG_HT3                      0x00000400U
253
#define DMA_FLAG_TE3                      0x00000800U
254
#define DMA_FLAG_TE3                      0x00000800U
254
#define DMA_FLAG_GL4                      0x00001000U
255
#define DMA_FLAG_GL4                      0x00001000U
255
#define DMA_FLAG_TC4                      0x00002000U
256
#define DMA_FLAG_TC4                      0x00002000U
256
#define DMA_FLAG_HT4                      0x00004000U
257
#define DMA_FLAG_HT4                      0x00004000U
257
#define DMA_FLAG_TE4                      0x00008000U
258
#define DMA_FLAG_TE4                      0x00008000U
258
#define DMA_FLAG_GL5                      0x00010000U
259
#define DMA_FLAG_GL5                      0x00010000U
259
#define DMA_FLAG_TC5                      0x00020000U
260
#define DMA_FLAG_TC5                      0x00020000U
260
#define DMA_FLAG_HT5                      0x00040000U
261
#define DMA_FLAG_HT5                      0x00040000U
261
#define DMA_FLAG_TE5                      0x00080000U
262
#define DMA_FLAG_TE5                      0x00080000U
262
#define DMA_FLAG_GL6                      0x00100000U
263
#define DMA_FLAG_GL6                      0x00100000U
263
#define DMA_FLAG_TC6                      0x00200000U
264
#define DMA_FLAG_TC6                      0x00200000U
264
#define DMA_FLAG_HT6                      0x00400000U
265
#define DMA_FLAG_HT6                      0x00400000U
265
#define DMA_FLAG_TE6                      0x00800000U
266
#define DMA_FLAG_TE6                      0x00800000U
266
#define DMA_FLAG_GL7                      0x01000000U
267
#define DMA_FLAG_GL7                      0x01000000U
267
#define DMA_FLAG_TC7                      0x02000000U
268
#define DMA_FLAG_TC7                      0x02000000U
268
#define DMA_FLAG_HT7                      0x04000000U
269
#define DMA_FLAG_HT7                      0x04000000U
269
#define DMA_FLAG_TE7                      0x08000000U
270
#define DMA_FLAG_TE7                      0x08000000U
270
/**
271
/**
271
  * @}
272
  * @}
272
  */
273
  */
273
 
274
 
274
/**
275
/**
275
  * @}
276
  * @}
276
  */
277
  */
277
 
278
 
278
 
279
 
279
/* Exported macros -----------------------------------------------------------*/
280
/* Exported macros -----------------------------------------------------------*/
280
/** @defgroup DMA_Exported_Macros DMA Exported Macros
281
/** @defgroup DMA_Exported_Macros DMA Exported Macros
281
  * @{
282
  * @{
282
  */
283
  */
283
 
284
 
284
/** @brief  Reset DMA handle state.
285
/** @brief  Reset DMA handle state.
285
  * @param  __HANDLE__: DMA handle
286
  * @param  __HANDLE__: DMA handle
286
  * @retval None
287
  * @retval None
287
  */
288
  */
288
#define __HAL_DMA_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DMA_STATE_RESET)
289
#define __HAL_DMA_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DMA_STATE_RESET)
289
 
290
 
290
/**
291
/**
291
  * @brief  Enable the specified DMA Channel.
292
  * @brief  Enable the specified DMA Channel.
292
  * @param  __HANDLE__: DMA handle
293
  * @param  __HANDLE__: DMA handle
293
  * @retval None
294
  * @retval None
294
  */
295
  */
295
#define __HAL_DMA_ENABLE(__HANDLE__)        (SET_BIT((__HANDLE__)->Instance->CCR, DMA_CCR_EN))
296
#define __HAL_DMA_ENABLE(__HANDLE__)        (SET_BIT((__HANDLE__)->Instance->CCR, DMA_CCR_EN))
296
 
297
 
297
/**
298
/**
298
  * @brief  Disable the specified DMA Channel.
299
  * @brief  Disable the specified DMA Channel.
299
  * @param  __HANDLE__: DMA handle
300
  * @param  __HANDLE__: DMA handle
300
  * @retval None
301
  * @retval None
301
  */
302
  */
302
#define __HAL_DMA_DISABLE(__HANDLE__)       (CLEAR_BIT((__HANDLE__)->Instance->CCR, DMA_CCR_EN))
303
#define __HAL_DMA_DISABLE(__HANDLE__)       (CLEAR_BIT((__HANDLE__)->Instance->CCR, DMA_CCR_EN))
303
 
304
 
304
 
305
 
305
/* Interrupt & Flag management */
306
/* Interrupt & Flag management */
306
 
307
 
307
/**
308
/**
308
  * @brief  Enables the specified DMA Channel interrupts.
309
  * @brief  Enables the specified DMA Channel interrupts.
309
  * @param  __HANDLE__: DMA handle
310
  * @param  __HANDLE__: DMA handle
310
  * @param __INTERRUPT__: specifies the DMA interrupt sources to be enabled or disabled.
311
  * @param __INTERRUPT__: specifies the DMA interrupt sources to be enabled or disabled.
311
  *          This parameter can be any combination of the following values:
312
  *          This parameter can be any combination of the following values:
312
  *            @arg DMA_IT_TC:  Transfer complete interrupt mask
313
  *            @arg DMA_IT_TC:  Transfer complete interrupt mask
313
  *            @arg DMA_IT_HT:  Half transfer complete interrupt mask
314
  *            @arg DMA_IT_HT:  Half transfer complete interrupt mask
314
  *            @arg DMA_IT_TE:  Transfer error interrupt mask
315
  *            @arg DMA_IT_TE:  Transfer error interrupt mask
315
  * @retval None
316
  * @retval None
316
  */
317
  */
317
#define __HAL_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)   (SET_BIT((__HANDLE__)->Instance->CCR, (__INTERRUPT__)))
318
#define __HAL_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)   (SET_BIT((__HANDLE__)->Instance->CCR, (__INTERRUPT__)))
318
 
319
 
319
/**
320
/**
320
  * @brief  Disable the specified DMA Channel interrupts.
321
  * @brief  Disable the specified DMA Channel interrupts.
321
  * @param  __HANDLE__: DMA handle
322
  * @param  __HANDLE__: DMA handle
322
  * @param  __INTERRUPT__: specifies the DMA interrupt sources to be enabled or disabled.
323
  * @param  __INTERRUPT__: specifies the DMA interrupt sources to be enabled or disabled.
323
  *          This parameter can be any combination of the following values:
324
  *          This parameter can be any combination of the following values:
324
  *            @arg DMA_IT_TC:  Transfer complete interrupt mask
325
  *            @arg DMA_IT_TC:  Transfer complete interrupt mask
325
  *            @arg DMA_IT_HT:  Half transfer complete interrupt mask
326
  *            @arg DMA_IT_HT:  Half transfer complete interrupt mask
326
  *            @arg DMA_IT_TE:  Transfer error interrupt mask
327
  *            @arg DMA_IT_TE:  Transfer error interrupt mask
327
  * @retval None
328
  * @retval None
328
  */
329
  */
329
#define __HAL_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__)  (CLEAR_BIT((__HANDLE__)->Instance->CCR , (__INTERRUPT__)))
330
#define __HAL_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__)  (CLEAR_BIT((__HANDLE__)->Instance->CCR , (__INTERRUPT__)))
330
 
331
 
331
/**
332
/**
332
  * @brief  Check whether the specified DMA Channel interrupt is enabled or not.
333
  * @brief  Check whether the specified DMA Channel interrupt is enabled or not.
333
  * @param  __HANDLE__: DMA handle
334
  * @param  __HANDLE__: DMA handle
334
  * @param  __INTERRUPT__: specifies the DMA interrupt source to check.
335
  * @param  __INTERRUPT__: specifies the DMA interrupt source to check.
335
  *          This parameter can be one of the following values:
336
  *          This parameter can be one of the following values:
336
  *            @arg DMA_IT_TC:  Transfer complete interrupt mask
337
  *            @arg DMA_IT_TC:  Transfer complete interrupt mask
337
  *            @arg DMA_IT_HT:  Half transfer complete interrupt mask
338
  *            @arg DMA_IT_HT:  Half transfer complete interrupt mask
338
  *            @arg DMA_IT_TE:  Transfer error interrupt mask
339
  *            @arg DMA_IT_TE:  Transfer error interrupt mask
339
  * @retval The state of DMA_IT (SET or RESET).
340
  * @retval The state of DMA_IT (SET or RESET).
340
  */
341
  */
341
#define __HAL_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)  ((((__HANDLE__)->Instance->CCR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
342
#define __HAL_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)  ((((__HANDLE__)->Instance->CCR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
342
 
343
 
343
/**
344
/**
344
  * @brief  Return the number of remaining data units in the current DMA Channel transfer.
345
  * @brief  Return the number of remaining data units in the current DMA Channel transfer.
345
  * @param  __HANDLE__: DMA handle
346
  * @param  __HANDLE__: DMA handle
346
  * @retval The number of remaining data units in the current DMA Channel transfer.
347
  * @retval The number of remaining data units in the current DMA Channel transfer.
347
  */
348
  */
348
#define __HAL_DMA_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNDTR)
349
#define __HAL_DMA_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNDTR)
349
 
350
 
350
/**
351
/**
351
  * @}
352
  * @}
352
  */
353
  */
353
 
354
 
354
/* Include DMA HAL Extension module */
355
/* Include DMA HAL Extension module */
355
#include "stm32f1xx_hal_dma_ex.h"   
356
#include "stm32f1xx_hal_dma_ex.h"   
356
 
357
 
357
/* Exported functions --------------------------------------------------------*/
358
/* Exported functions --------------------------------------------------------*/
358
/** @addtogroup DMA_Exported_Functions
359
/** @addtogroup DMA_Exported_Functions
359
  * @{
360
  * @{
360
  */
361
  */
361
 
362
 
362
/** @addtogroup DMA_Exported_Functions_Group1
363
/** @addtogroup DMA_Exported_Functions_Group1
363
  * @{
364
  * @{
364
  */
365
  */
365
/* Initialization and de-initialization functions *****************************/
366
/* Initialization and de-initialization functions *****************************/
366
HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma);
367
HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma);
367
HAL_StatusTypeDef HAL_DMA_DeInit (DMA_HandleTypeDef *hdma);
368
HAL_StatusTypeDef HAL_DMA_DeInit (DMA_HandleTypeDef *hdma);
368
/**
369
/**
369
  * @}
370
  * @}
370
  */
371
  */
371
 
372
 
372
/** @addtogroup DMA_Exported_Functions_Group2
373
/** @addtogroup DMA_Exported_Functions_Group2
373
  * @{
374
  * @{
374
  */
375
  */
375
/* IO operation functions *****************************************************/
376
/* IO operation functions *****************************************************/
376
HAL_StatusTypeDef HAL_DMA_Start (DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
377
HAL_StatusTypeDef HAL_DMA_Start (DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
377
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
378
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
378
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma);
379
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma);
379
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma);
380
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma);
380
HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, uint32_t CompleteLevel, uint32_t Timeout);
381
HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, uint32_t CompleteLevel, uint32_t Timeout);
381
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma);
382
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma);
382
HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (* pCallback)( DMA_HandleTypeDef * _hdma));
383
HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (* pCallback)( DMA_HandleTypeDef * _hdma));
383
HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID);
384
HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID);
384
 
385
 
385
/**
386
/**
386
  * @}
387
  * @}
387
  */
388
  */
388
 
389
 
389
/** @addtogroup DMA_Exported_Functions_Group3
390
/** @addtogroup DMA_Exported_Functions_Group3
390
  * @{
391
  * @{
391
  */
392
  */
392
/* Peripheral State and Error functions ***************************************/
393
/* Peripheral State and Error functions ***************************************/
393
HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma);
394
HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma);
394
uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma);
395
uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma);
395
/**
396
/**
396
  * @}
397
  * @}
397
  */
398
  */
398
 
399
 
399
/**
400
/**
400
  * @}
401
  * @}
401
  */
402
  */
402
 
403
 
403
/* Private macros ------------------------------------------------------------*/
404
/* Private macros ------------------------------------------------------------*/
404
/** @defgroup DMA_Private_Macros DMA Private Macros
405
/** @defgroup DMA_Private_Macros DMA Private Macros
405
  * @{
406
  * @{
406
  */
407
  */
407
 
408
 
408
#define IS_DMA_DIRECTION(DIRECTION) (((DIRECTION) == DMA_PERIPH_TO_MEMORY ) || \
409
#define IS_DMA_DIRECTION(DIRECTION) (((DIRECTION) == DMA_PERIPH_TO_MEMORY ) || \
409
                                     ((DIRECTION) == DMA_MEMORY_TO_PERIPH)  || \
410
                                     ((DIRECTION) == DMA_MEMORY_TO_PERIPH)  || \
410
                                     ((DIRECTION) == DMA_MEMORY_TO_MEMORY))
411
                                     ((DIRECTION) == DMA_MEMORY_TO_MEMORY))
411
 
412
 
412
#define IS_DMA_BUFFER_SIZE(SIZE) (((SIZE) >= 0x1U) && ((SIZE) < 0x10000U))
413
#define IS_DMA_BUFFER_SIZE(SIZE) (((SIZE) >= 0x1U) && ((SIZE) < 0x10000U))
413
 
414
 
414
#define IS_DMA_PERIPHERAL_INC_STATE(STATE) (((STATE) == DMA_PINC_ENABLE) || \
415
#define IS_DMA_PERIPHERAL_INC_STATE(STATE) (((STATE) == DMA_PINC_ENABLE) || \
415
                                            ((STATE) == DMA_PINC_DISABLE))
416
                                            ((STATE) == DMA_PINC_DISABLE))
416
 
417
 
417
#define IS_DMA_MEMORY_INC_STATE(STATE) (((STATE) == DMA_MINC_ENABLE)  || \
418
#define IS_DMA_MEMORY_INC_STATE(STATE) (((STATE) == DMA_MINC_ENABLE)  || \
418
                                        ((STATE) == DMA_MINC_DISABLE))
419
                                        ((STATE) == DMA_MINC_DISABLE))
419
 
420
 
420
#define IS_DMA_PERIPHERAL_DATA_SIZE(SIZE) (((SIZE) == DMA_PDATAALIGN_BYTE)     || \
421
#define IS_DMA_PERIPHERAL_DATA_SIZE(SIZE) (((SIZE) == DMA_PDATAALIGN_BYTE)     || \
421
                                           ((SIZE) == DMA_PDATAALIGN_HALFWORD) || \
422
                                           ((SIZE) == DMA_PDATAALIGN_HALFWORD) || \
422
                                           ((SIZE) == DMA_PDATAALIGN_WORD))
423
                                           ((SIZE) == DMA_PDATAALIGN_WORD))
423
 
424
 
424
#define IS_DMA_MEMORY_DATA_SIZE(SIZE) (((SIZE) == DMA_MDATAALIGN_BYTE)     || \
425
#define IS_DMA_MEMORY_DATA_SIZE(SIZE) (((SIZE) == DMA_MDATAALIGN_BYTE)     || \
425
                                       ((SIZE) == DMA_MDATAALIGN_HALFWORD) || \
426
                                       ((SIZE) == DMA_MDATAALIGN_HALFWORD) || \
426
                                       ((SIZE) == DMA_MDATAALIGN_WORD ))
427
                                       ((SIZE) == DMA_MDATAALIGN_WORD ))
427
 
428
 
428
#define IS_DMA_MODE(MODE) (((MODE) == DMA_NORMAL )  || \
429
#define IS_DMA_MODE(MODE) (((MODE) == DMA_NORMAL )  || \
429
                           ((MODE) == DMA_CIRCULAR))
430
                           ((MODE) == DMA_CIRCULAR))
430
 
431
 
431
#define IS_DMA_PRIORITY(PRIORITY) (((PRIORITY) == DMA_PRIORITY_LOW )   || \
432
#define IS_DMA_PRIORITY(PRIORITY) (((PRIORITY) == DMA_PRIORITY_LOW )   || \
432
                                   ((PRIORITY) == DMA_PRIORITY_MEDIUM) || \
433
                                   ((PRIORITY) == DMA_PRIORITY_MEDIUM) || \
433
                                   ((PRIORITY) == DMA_PRIORITY_HIGH)   || \
434
                                   ((PRIORITY) == DMA_PRIORITY_HIGH)   || \
434
                                   ((PRIORITY) == DMA_PRIORITY_VERY_HIGH))
435
                                   ((PRIORITY) == DMA_PRIORITY_VERY_HIGH))
435
 
436
 
436
/**
437
/**
437
  * @}
438
  * @}
438
  */
439
  */
439
 
440
 
440
/* Private functions ---------------------------------------------------------*/
441
/* Private functions ---------------------------------------------------------*/
441
 
442
 
442
/**
443
/**
443
  * @}
444
  * @}
444
  */
445
  */
445
 
446
 
446
/**
447
/**
447
  * @}
448
  * @}
448
  */
449
  */
449
 
450
 
450
#ifdef __cplusplus
451
#ifdef __cplusplus
451
}
452
}
452
#endif
453
#endif
453
 
454
 
454
#endif /* __STM32F1xx_HAL_DMA_H */
455
#endif /* __STM32F1xx_HAL_DMA_H */
455
 
456
 
-
 
457
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-