source: ctrl/firmware/Main/CubeMX/Core/Src/sdmmc.c

Last change on this file was 108, checked in by Zed, 2 months ago

Fixing project.

File size: 3.8 KB
Line 
1/* USER CODE BEGIN Header */
2/**
3  ******************************************************************************
4  * @file    sdmmc.c
5  * @brief   This file provides code for the configuration
6  *          of the SDMMC instances.
7  ******************************************************************************
8  * @attention
9  *
10  * Copyright (c) 2024 STMicroelectronics.
11  * All rights reserved.
12  *
13  * This software is licensed under terms that can be found in the LICENSE file
14  * in the root directory of this software component.
15  * If no LICENSE file comes with this software, it is provided AS-IS.
16  *
17  ******************************************************************************
18  */
19/* USER CODE END Header */
20/* Includes ------------------------------------------------------------------*/
21#include "sdmmc.h"
22
23/* USER CODE BEGIN 0 */
24
25#include <stdio.h>
26
27/* USER CODE END 0 */
28
29SD_HandleTypeDef hsd1;
30
31/* SDMMC1 init function */
32
33void MX_SDMMC1_SD_Init(void)
34{
35
36  /* USER CODE BEGIN SDMMC1_Init 0 */
37
38  /* USER CODE END SDMMC1_Init 0 */
39
40  /* USER CODE BEGIN SDMMC1_Init 1 */
41
42  /* USER CODE END SDMMC1_Init 1 */
43  hsd1.Instance = SDMMC1;
44  hsd1.Init.ClockEdge = SDMMC_CLOCK_EDGE_RISING;
45  hsd1.Init.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_ENABLE;
46  hsd1.Init.BusWide = SDMMC_BUS_WIDE_4B;
47  hsd1.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_ENABLE;
48  hsd1.Init.ClockDiv = 2;
49  /* USER CODE BEGIN SDMMC1_Init 2 */
50
51  /* USER CODE END SDMMC1_Init 2 */
52
53}
54
55void HAL_SD_MspInit(SD_HandleTypeDef* sdHandle)
56{
57
58  GPIO_InitTypeDef GPIO_InitStruct = {0};
59  if(sdHandle->Instance==SDMMC1)
60  {
61  /* USER CODE BEGIN SDMMC1_MspInit 0 */
62
63  /* USER CODE END SDMMC1_MspInit 0 */
64    /* SDMMC1 clock enable */
65    __HAL_RCC_SDMMC1_CLK_ENABLE();
66
67    __HAL_RCC_GPIOC_CLK_ENABLE();
68    __HAL_RCC_GPIOD_CLK_ENABLE();
69    /**SDMMC1 GPIO Configuration
70    PC8     ------> SDMMC1_D0
71    PC9     ------> SDMMC1_D1
72    PC10     ------> SDMMC1_D2
73    PC11     ------> SDMMC1_D3
74    PC12     ------> SDMMC1_CK
75    PD2     ------> SDMMC1_CMD
76    */
77    GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
78                          |GPIO_PIN_12;
79    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
80    GPIO_InitStruct.Pull = GPIO_NOPULL;
81    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
82    GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
83    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
84
85    GPIO_InitStruct.Pin = GPIO_PIN_2;
86    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
87    GPIO_InitStruct.Pull = GPIO_NOPULL;
88    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
89    GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
90    HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
91
92    /* SDMMC1 interrupt Init */
93    HAL_NVIC_SetPriority(SDMMC1_IRQn, 5, 0);
94    HAL_NVIC_EnableIRQ(SDMMC1_IRQn);
95  /* USER CODE BEGIN SDMMC1_MspInit 1 */
96
97  /* USER CODE END SDMMC1_MspInit 1 */
98  }
99}
100
101void HAL_SD_MspDeInit(SD_HandleTypeDef* sdHandle)
102{
103
104  if(sdHandle->Instance==SDMMC1)
105  {
106  /* USER CODE BEGIN SDMMC1_MspDeInit 0 */
107
108  /* USER CODE END SDMMC1_MspDeInit 0 */
109    /* Peripheral clock disable */
110    __HAL_RCC_SDMMC1_CLK_DISABLE();
111
112    /**SDMMC1 GPIO Configuration
113    PC8     ------> SDMMC1_D0
114    PC9     ------> SDMMC1_D1
115    PC10     ------> SDMMC1_D2
116    PC11     ------> SDMMC1_D3
117    PC12     ------> SDMMC1_CK
118    PD2     ------> SDMMC1_CMD
119    */
120    HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
121                          |GPIO_PIN_12);
122
123    HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
124
125    /* SDMMC1 interrupt Deinit */
126    HAL_NVIC_DisableIRQ(SDMMC1_IRQn);
127  /* USER CODE BEGIN SDMMC1_MspDeInit 1 */
128
129  /* USER CODE END SDMMC1_MspDeInit 1 */
130  }
131}
132
133/* USER CODE BEGIN 1 */
134
135/* USER CODE END 1 */
Note: See TracBrowser for help on using the repository browser.