Skip to content

Commit a52d755

Browse files
jeromecoutantadbridge
authored andcommitted
STM32F7 SPI - add missing HAL files
ST_INTERNAL_REF 43358
1 parent d6e5fac commit a52d755

File tree

2 files changed

+222
-0
lines changed

2 files changed

+222
-0
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
/**
2+
******************************************************************************
3+
* @file stm32f7xx_hal_spi_ex.c
4+
* @author MCD Application Team
5+
* @brief Extended SPI HAL module driver.
6+
* This file provides firmware functions to manage the following
7+
* SPI peripheral extended functionalities :
8+
* + IO operation functions
9+
*
10+
******************************************************************************
11+
* @attention
12+
*
13+
* <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
14+
*
15+
* Redistribution and use in source and binary forms, with or without modification,
16+
* are permitted provided that the following conditions are met:
17+
* 1. Redistributions of source code must retain the above copyright notice,
18+
* this list of conditions and the following disclaimer.
19+
* 2. Redistributions in binary form must reproduce the above copyright notice,
20+
* this list of conditions and the following disclaimer in the documentation
21+
* and/or other materials provided with the distribution.
22+
* 3. Neither the name of STMicroelectronics nor the names of its contributors
23+
* may be used to endorse or promote products derived from this software
24+
* without specific prior written permission.
25+
*
26+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
30+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
32+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
33+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
34+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36+
*
37+
******************************************************************************
38+
*/
39+
40+
/* Includes ------------------------------------------------------------------*/
41+
#include "stm32f7xx_hal.h"
42+
43+
/** @addtogroup STM32F7xx_HAL_Driver
44+
* @{
45+
*/
46+
47+
/** @defgroup SPIEx SPIEx
48+
* @brief SPI Extended HAL module driver
49+
* @{
50+
*/
51+
#ifdef HAL_SPI_MODULE_ENABLED
52+
53+
/* Private typedef -----------------------------------------------------------*/
54+
/* Private defines -----------------------------------------------------------*/
55+
/** @defgroup SPIEx_Private_Constants SPIEx Private Constants
56+
* @{
57+
*/
58+
#define SPI_FIFO_SIZE 4
59+
/**
60+
* @}
61+
*/
62+
63+
/* Private macros ------------------------------------------------------------*/
64+
/* Private variables ---------------------------------------------------------*/
65+
/* Private function prototypes -----------------------------------------------*/
66+
/* Exported functions --------------------------------------------------------*/
67+
68+
/** @defgroup SPIEx_Exported_Functions SPIEx Exported Functions
69+
* @{
70+
*/
71+
72+
/** @defgroup SPIEx_Exported_Functions_Group1 IO operation functions
73+
* @brief Data transfers functions
74+
*
75+
@verbatim
76+
==============================================================================
77+
##### IO operation functions #####
78+
===============================================================================
79+
[..]
80+
This subsection provides a set of extended functions to manage the SPI
81+
data transfers.
82+
83+
(#) Rx data flush function:
84+
(++) HAL_SPIEx_FlushRxFifo()
85+
86+
@endverbatim
87+
* @{
88+
*/
89+
90+
/**
91+
* @brief Flush the RX fifo.
92+
* @param hspi pointer to a SPI_HandleTypeDef structure that contains
93+
* the configuration information for the specified SPI module.
94+
* @retval HAL status
95+
*/
96+
HAL_StatusTypeDef HAL_SPIEx_FlushRxFifo(SPI_HandleTypeDef *hspi)
97+
{
98+
__IO uint32_t tmpreg;
99+
uint8_t count = 0U;
100+
while ((hspi->Instance->SR & SPI_FLAG_FRLVL) != SPI_FRLVL_EMPTY)
101+
{
102+
count++;
103+
tmpreg = hspi->Instance->DR;
104+
UNUSED(tmpreg); /* To avoid GCC warning */
105+
if (count == SPI_FIFO_SIZE)
106+
{
107+
return HAL_TIMEOUT;
108+
}
109+
}
110+
return HAL_OK;
111+
}
112+
113+
/**
114+
* @}
115+
*/
116+
117+
/**
118+
* @}
119+
*/
120+
121+
#endif /* HAL_SPI_MODULE_ENABLED */
122+
123+
/**
124+
* @}
125+
*/
126+
127+
/**
128+
* @}
129+
*/
130+
131+
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/**
2+
******************************************************************************
3+
* @file stm32f7xx_hal_spi_ex.h
4+
* @author MCD Application Team
5+
* @brief Header file of SPI HAL Extended module.
6+
******************************************************************************
7+
* @attention
8+
*
9+
* <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
10+
*
11+
* Redistribution and use in source and binary forms, with or without modification,
12+
* are permitted provided that the following conditions are met:
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.
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
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+
*
33+
******************************************************************************
34+
*/
35+
36+
/* Define to prevent recursive inclusion -------------------------------------*/
37+
#ifndef __STM32F7xx_HAL_SPI_EX_H
38+
#define __STM32F7xx_HAL_SPI_EX_H
39+
40+
#ifdef __cplusplus
41+
extern "C" {
42+
#endif
43+
44+
/* Includes ------------------------------------------------------------------*/
45+
#include "stm32f7xx_hal_def.h"
46+
47+
/** @addtogroup STM32F7xx_HAL_Driver
48+
* @{
49+
*/
50+
51+
/** @addtogroup SPIEx
52+
* @{
53+
*/
54+
55+
/* Exported types ------------------------------------------------------------*/
56+
/* Exported constants --------------------------------------------------------*/
57+
/* Exported macros -----------------------------------------------------------*/
58+
/* Exported functions --------------------------------------------------------*/
59+
/** @addtogroup SPIEx_Exported_Functions
60+
* @{
61+
*/
62+
63+
/* Initialization and de-initialization functions ****************************/
64+
/* IO operation functions *****************************************************/
65+
/** @addtogroup SPIEx_Exported_Functions_Group1
66+
* @{
67+
*/
68+
HAL_StatusTypeDef HAL_SPIEx_FlushRxFifo(SPI_HandleTypeDef *hspi);
69+
/**
70+
* @}
71+
*/
72+
73+
/**
74+
* @}
75+
*/
76+
77+
/**
78+
* @}
79+
*/
80+
81+
/**
82+
* @}
83+
*/
84+
85+
#ifdef __cplusplus
86+
}
87+
#endif
88+
89+
#endif /* __STM32F7xx_HAL_SPI_EX_H */
90+
91+
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

0 commit comments

Comments
 (0)