-
Notifications
You must be signed in to change notification settings - Fork 188
/
stm32f7xx_hal_msp.c
135 lines (110 loc) · 4.11 KB
/
stm32f7xx_hal_msp.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/**
******************************************************************************
* @file JPEG/JPEG_DecodingUsingFs_DMA/Src/stm32f7xx_hal_msp.c
* @author MCD Application Team
* @brief HAL MSP module.
******************************************************************************
* @attention
*
* Copyright (c) 2016 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/** @addtogroup STM32F7xx_HAL_Examples
* @{
*/
/** @addtogroup JPEG_DecodingUsingFs_DMA
* @{
*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/** @defgroup HAL_MSP_Private_Functions
* @{
*/
/**
* @brief JPEG MSP Initialization
* This function configures the hardware resources used in this example:
* - Peripheral's clock enable
* - NVIC configuration for JPEG interrupt request enable
* - DMA configuration for transmission request by peripheral
* - NVIC configuration for DMA interrupt request enable
* @param hjpeg: JPEG handle pointer
* @retval None
*/
void HAL_JPEG_MspInit(JPEG_HandleTypeDef *hjpeg)
{
static DMA_HandleTypeDef hdmaIn;
static DMA_HandleTypeDef hdmaOut;
/* Enable JPEG clock */
__HAL_RCC_JPEG_CLK_ENABLE();
/* Enable DMA clock */
__HAL_RCC_DMA2_CLK_ENABLE();
HAL_NVIC_SetPriority(JPEG_IRQn, 0x06, 0x0F);
HAL_NVIC_EnableIRQ(JPEG_IRQn);
/* Input DMA */
/* Set the parameters to be configured */
hdmaIn.Init.Channel = DMA_CHANNEL_9;
hdmaIn.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdmaIn.Init.PeriphInc = DMA_PINC_DISABLE;
hdmaIn.Init.MemInc = DMA_MINC_ENABLE;
hdmaIn.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
hdmaIn.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
hdmaIn.Init.Mode = DMA_NORMAL;
hdmaIn.Init.Priority = DMA_PRIORITY_HIGH;
hdmaIn.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
hdmaIn.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
hdmaIn.Init.MemBurst = DMA_MBURST_INC4;
hdmaIn.Init.PeriphBurst = DMA_PBURST_INC4;
hdmaIn.Instance = DMA2_Stream3;
/* Associate the DMA handle */
__HAL_LINKDMA(hjpeg, hdmain, hdmaIn);
HAL_NVIC_SetPriority(DMA2_Stream3_IRQn, 0x07, 0x0F);
HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn);
/* DeInitialize the DMA Stream */
HAL_DMA_DeInit(&hdmaIn);
/* Initialize the DMA stream */
HAL_DMA_Init(&hdmaIn);
/* Output DMA */
/* Set the parameters to be configured */
hdmaOut.Init.Channel = DMA_CHANNEL_9;
hdmaOut.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdmaOut.Init.PeriphInc = DMA_PINC_DISABLE;
hdmaOut.Init.MemInc = DMA_MINC_ENABLE;
hdmaOut.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
hdmaOut.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
hdmaOut.Init.Mode = DMA_NORMAL;
hdmaOut.Init.Priority = DMA_PRIORITY_VERY_HIGH;
hdmaOut.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
hdmaOut.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
hdmaOut.Init.MemBurst = DMA_MBURST_INC4;
hdmaOut.Init.PeriphBurst = DMA_PBURST_INC4;
hdmaOut.Instance = DMA2_Stream4;
/* DeInitialize the DMA Stream */
HAL_DMA_DeInit(&hdmaOut);
/* Initialize the DMA stream */
HAL_DMA_Init(&hdmaOut);
/* Associate the DMA handle */
__HAL_LINKDMA(hjpeg, hdmaout, hdmaOut);
HAL_NVIC_SetPriority(DMA2_Stream4_IRQn, 0x07, 0x0F);
HAL_NVIC_EnableIRQ(DMA2_Stream4_IRQn);
}
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/