Skip to content

Commit e1facae

Browse files
committed
[NUCLEO_F401RE] Update STM32CubeF4 driver V1.0.0 (part 4/4)
1 parent 5a4e51a commit e1facae

24 files changed

+373
-462
lines changed

libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/stm32f4xx_hal_spi.c

Lines changed: 37 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
******************************************************************************
33
* @file stm32f4xx_hal_spi.c
44
* @author MCD Application Team
5-
* @version V1.0.0RC2
6-
* @date 04-February-2014
5+
* @version V1.0.0
6+
* @date 18-February-2014
77
* @brief SPI HAL module driver.
88
*
99
* This file provides firmware functions to manage the following
@@ -98,7 +98,7 @@
9898
/* Private function prototypes -----------------------------------------------*/
9999
static void SPI_TxCloseIRQHandler(SPI_HandleTypeDef *hspi);
100100
static void SPI_TxISR(SPI_HandleTypeDef *hspi);
101-
static void SPI_RxClose_IRQHandler(SPI_HandleTypeDef *hspi);
101+
static void SPI_RxCloseIRQHandler(SPI_HandleTypeDef *hspi);
102102
static void SPI_2LinesRxISR(SPI_HandleTypeDef *hspi);
103103
static void SPI_RxISR(SPI_HandleTypeDef *hspi);
104104
static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma);
@@ -229,6 +229,9 @@ HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi)
229229
hspi->ErrorCode = HAL_SPI_ERROR_NONE;
230230
hspi->State = HAL_SPI_STATE_RESET;
231231

232+
/* Release Lock */
233+
__HAL_UNLOCK(hspi);
234+
232235
return HAL_OK;
233236
}
234237

@@ -653,7 +656,7 @@ HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxD
653656
/* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */
654657
if(hspi->State == HAL_SPI_STATE_READY)
655658
{
656-
hspi->State = HAL_SPI_STATE_BUSY_TX_RX;
659+
hspi->State = HAL_SPI_STATE_BUSY_TX_RX;
657660
}
658661

659662
/* Configure communication */
@@ -1047,7 +1050,7 @@ HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *p
10471050
/* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */
10481051
if(hspi->State == HAL_SPI_STATE_READY)
10491052
{
1050-
hspi->State = HAL_SPI_STATE_BUSY_TX_RX;
1053+
hspi->State = HAL_SPI_STATE_BUSY_TX_RX;
10511054
}
10521055

10531056
/* Configure communication */
@@ -1281,7 +1284,7 @@ HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *
12811284
/* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */
12821285
if(hspi->State == HAL_SPI_STATE_READY)
12831286
{
1284-
hspi->State = HAL_SPI_STATE_BUSY_TX_RX;
1287+
hspi->State = HAL_SPI_STATE_BUSY_TX_RX;
12851288
}
12861289

12871290
/* Configure communication */
@@ -1305,9 +1308,15 @@ HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *
13051308
__HAL_SPI_RESET_CRC(hspi);
13061309
}
13071310

1308-
/* Set the SPI Rx DMA transfer complete callback because the last generated transfer request is
1309-
the reception request (RXNE) */
1310-
hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt;
1311+
/* Check if we are in Rx only or in Rx/Tx Mode and configure the DMA transfer complete callback */
1312+
if(hspi->State == HAL_SPI_STATE_BUSY_RX)
1313+
{
1314+
hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt;
1315+
}
1316+
else
1317+
{
1318+
hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt;
1319+
}
13111320

13121321
/* Set the DMA error callback */
13131322
hspi->hdmarx->XferErrorCallback = SPI_DMAError;
@@ -1518,13 +1527,10 @@ HAL_SPI_ErrorTypeDef HAL_SPI_GetError(SPI_HandleTypeDef *hspi)
15181527
*/
15191528
static void SPI_TxCloseIRQHandler(SPI_HandleTypeDef *hspi)
15201529
{
1521-
if(hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLED)
1530+
/* Wait until TXE flag is set to send data */
1531+
if(SPI_WaitOnFlagUntilTimeout(hspi, SPI_FLAG_TXE, RESET, SPI_TIMEOUT_VALUE) != HAL_OK)
15221532
{
1523-
/* Wait until TXE flag is set to send data */
1524-
if(SPI_WaitOnFlagUntilTimeout(hspi, SPI_FLAG_TXE, RESET, SPI_TIMEOUT_VALUE) != HAL_OK)
1525-
{
1526-
hspi->ErrorCode |= HAL_SPI_ERROR_FLAG;
1527-
}
1533+
hspi->ErrorCode |= HAL_SPI_ERROR_FLAG;
15281534
}
15291535

15301536
/* Disable TXE interrupt */
@@ -1547,24 +1553,27 @@ static void SPI_TxCloseIRQHandler(SPI_HandleTypeDef *hspi)
15471553
__HAL_SPI_CLEAR_OVRFLAG(hspi);
15481554
}
15491555

1550-
/* Set state to READY before run the Callback Complete */
1551-
hspi->State = HAL_SPI_STATE_READY;
1552-
15531556
/* Check if Errors has been detected during transfer */
15541557
if(hspi->ErrorCode == HAL_SPI_ERROR_NONE)
15551558
{
15561559
/* Check if we are in Tx or in Rx/Tx Mode */
15571560
if(hspi->State == HAL_SPI_STATE_BUSY_TX_RX)
15581561
{
1562+
/* Set state to READY before run the Callback Complete */
1563+
hspi->State = HAL_SPI_STATE_READY;
15591564
HAL_SPI_TxRxCpltCallback(hspi);
15601565
}
15611566
else
15621567
{
1563-
HAL_SPI_TxRxCpltCallback(hspi);
1568+
/* Set state to READY before run the Callback Complete */
1569+
hspi->State = HAL_SPI_STATE_READY;
1570+
HAL_SPI_TxCpltCallback(hspi);
15641571
}
15651572
}
15661573
else
15671574
{
1575+
/* Set state to READY before run the Callback Complete */
1576+
hspi->State = HAL_SPI_STATE_READY;
15681577
/* Call Error call back in case of Error */
15691578
HAL_SPI_ErrorCallback(hspi);
15701579
}
@@ -1607,7 +1616,7 @@ static void SPI_TxISR(SPI_HandleTypeDef *hspi)
16071616
* @param hspi: SPI handle
16081617
* @retval void
16091618
*/
1610-
static void SPI_RxClose_IRQHandler(SPI_HandleTypeDef *hspi)
1619+
static void SPI_RxCloseIRQHandler(SPI_HandleTypeDef *hspi)
16111620
{
16121621
__IO uint16_t tmpreg;
16131622

@@ -1653,22 +1662,26 @@ static void SPI_RxClose_IRQHandler(SPI_HandleTypeDef *hspi)
16531662
__HAL_SPI_DISABLE(hspi);
16541663
}
16551664

1656-
/* Set state to READY before run the Callback Complete */
1657-
hspi->State = HAL_SPI_STATE_READY;
16581665
/* Check if Errors has been detected during transfer */
16591666
if(hspi->ErrorCode == HAL_SPI_ERROR_NONE)
16601667
{
16611668
/* Check if we are in Rx or in Rx/Tx Mode */
16621669
if(hspi->State == HAL_SPI_STATE_BUSY_TX_RX)
16631670
{
1671+
/* Set state to READY before run the Callback Complete */
1672+
hspi->State = HAL_SPI_STATE_READY;
16641673
HAL_SPI_TxRxCpltCallback(hspi);
16651674
}else
16661675
{
1676+
/* Set state to READY before run the Callback Complete */
1677+
hspi->State = HAL_SPI_STATE_READY;
16671678
HAL_SPI_RxCpltCallback(hspi);
16681679
}
16691680
}
16701681
else
16711682
{
1683+
/* Set state to READY before run the Callback Complete */
1684+
hspi->State = HAL_SPI_STATE_READY;
16721685
/* Call Error call back in case of Error */
16731686
HAL_SPI_ErrorCallback(hspi);
16741687
}
@@ -1697,7 +1710,7 @@ static void SPI_2LinesRxISR(SPI_HandleTypeDef *hspi)
16971710

16981711
if(hspi->RxXferCount==0)
16991712
{
1700-
SPI_RxClose_IRQHandler(hspi);
1713+
SPI_RxCloseIRQHandler(hspi);
17011714
}
17021715
}
17031716

@@ -1730,7 +1743,7 @@ static void SPI_RxISR(SPI_HandleTypeDef *hspi)
17301743

17311744
if(hspi->RxXferCount == 0)
17321745
{
1733-
SPI_RxClose_IRQHandler(hspi);
1746+
SPI_RxCloseIRQHandler(hspi);
17341747
}
17351748
}
17361749

libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/stm32f4xx_hal_spi.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
******************************************************************************
33
* @file stm32f4xx_hal_spi.h
44
* @author MCD Application Team
5-
* @version V1.0.0RC2
6-
* @date 04-February-2014
5+
* @version V1.0.0
6+
* @date 18-February-2014
77
* @brief Header file of SPI HAL module.
88
******************************************************************************
99
* @attention
@@ -448,10 +448,10 @@ HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData,
448448
HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
449449
HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
450450
void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi);
451-
__weak void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);
452-
__weak void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi);
453-
__weak void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi);
454-
__weak void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi);
451+
void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);
452+
void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi);
453+
void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi);
454+
void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi);
455455

456456
/* Peripheral State and Control functions **************************************/
457457
HAL_SPI_StateTypeDef HAL_SPI_GetState(SPI_HandleTypeDef *hspi);

libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/stm32f4xx_hal_sram.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
******************************************************************************
33
* @file stm32f4xx_hal_sram.c
44
* @author MCD Application Team
5-
* @version V1.0.0RC2
6-
* @date 04-February-2014
5+
* @version V1.0.0
6+
* @date 18-February-2014
77
* @brief SRAM HAL module driver.
88
* This file provides a generic firmware to drive SRAM memories
99
* mounted as external device.
@@ -180,7 +180,12 @@ HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram)
180180

181181
/* Configure the SRAM registers with their reset values */
182182
FMC_NORSRAM_DeInit(hsram->Instance, hsram->Extended, hsram->Init.NSBank);
183-
183+
184+
hsram->State = HAL_SRAM_STATE_RESET;
185+
186+
/* Release Lock */
187+
__HAL_UNLOCK(hsram);
188+
184189
return HAL_OK;
185190
}
186191

libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/stm32f4xx_hal_sram.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
******************************************************************************
33
* @file stm32f4xx_hal_sram.h
44
* @author MCD Application Team
5-
* @version V1.0.0RC2
6-
* @date 04-February-2014
5+
* @version V1.0.0
6+
* @date 18-February-2014
77
* @brief Header file of SRAM HAL module.
88
******************************************************************************
99
* @attention
@@ -104,8 +104,8 @@ typedef struct
104104
/* Initialization/de-initialization functions **********************************/
105105
HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing, FMC_NORSRAM_TimingTypeDef *ExtTiming);
106106
HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram);
107-
__weak void HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram);
108-
__weak void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram);
107+
void HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram);
108+
void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram);
109109

110110
/* I/O operation functions *****************************************************/
111111
HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize);
@@ -117,8 +117,8 @@ HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddre
117117
HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize);
118118
HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize);
119119

120-
__weak void HAL_SRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
121-
__weak void HAL_SRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
120+
void HAL_SRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
121+
void HAL_SRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
122122

123123
/* SRAM Control functions ******************************************************/
124124
HAL_StatusTypeDef HAL_SRAM_WriteOperation_Enable(SRAM_HandleTypeDef *hsram);

libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/stm32f4xx_hal_tim.c

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
******************************************************************************
33
* @file stm32f4xx_hal_tim.c
44
* @author MCD Application Team
5-
* @version V1.0.0RC2
6-
* @date 04-February-2014
5+
* @version V1.0.0
6+
* @date 18-February-2014
77
* @brief TIM HAL module driver.
88
* This file provides firmware functions to manage the following
99
* functionalities of the Timer (TIM) peripheral:
@@ -248,6 +248,9 @@ HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim)
248248
/* Change TIM state */
249249
htim->State = HAL_TIM_STATE_RESET;
250250

251+
/* Release Lock */
252+
__HAL_UNLOCK(htim);
253+
251254
return HAL_OK;
252255
}
253256

@@ -511,7 +514,10 @@ HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim)
511514

512515
/* Change TIM state */
513516
htim->State = HAL_TIM_STATE_RESET;
514-
517+
518+
/* Release Lock */
519+
__HAL_UNLOCK(htim);
520+
515521
return HAL_OK;
516522
}
517523

@@ -1005,7 +1011,10 @@ HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim)
10051011

10061012
/* Change TIM state */
10071013
htim->State = HAL_TIM_STATE_RESET;
1008-
1014+
1015+
/* Release Lock */
1016+
__HAL_UNLOCK(htim);
1017+
10091018
return HAL_OK;
10101019
}
10111020

@@ -1502,7 +1511,10 @@ HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim)
15021511

15031512
/* Change TIM state */
15041513
htim->State = HAL_TIM_STATE_RESET;
1505-
1514+
1515+
/* Release Lock */
1516+
__HAL_UNLOCK(htim);
1517+
15061518
return HAL_OK;
15071519
}
15081520

@@ -1971,8 +1983,11 @@ HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim)
19711983
HAL_TIM_OnePulse_MspDeInit(htim);
19721984

19731985
/* Change TIM state */
1974-
htim->State = HAL_TIM_STATE_RESET;
1975-
1986+
htim->State = HAL_TIM_STATE_RESET;
1987+
1988+
/* Release Lock */
1989+
__HAL_UNLOCK(htim);
1990+
19761991
return HAL_OK;
19771992
}
19781993

@@ -2274,8 +2289,11 @@ HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim)
22742289
HAL_TIM_Encoder_MspDeInit(htim);
22752290

22762291
/* Change TIM state */
2277-
htim->State = HAL_TIM_STATE_RESET;
2278-
2292+
htim->State = HAL_TIM_STATE_RESET;
2293+
2294+
/* Release Lock */
2295+
__HAL_UNLOCK(htim);
2296+
22792297
return HAL_OK;
22802298
}
22812299

libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/stm32f4xx_hal_tim.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
******************************************************************************
33
* @file stm32f4xx_hal_tim.h
44
* @author MCD Application Team
5-
* @version V1.0.0RC2
6-
* @date 04-February-2014
5+
* @version V1.0.0
6+
* @date 18-February-2014
77
* @brief Header file of TIM HAL module.
88
******************************************************************************
99
* @attention
@@ -1414,12 +1414,12 @@ HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventS
14141414
uint32_t HAL_TIM_ReadCapturedValue(TIM_HandleTypeDef *htim, uint32_t Channel);
14151415

14161416
/* Callback in non blocking modes (Interrupt and DMA) *************************/
1417-
__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
1418-
__weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim);
1419-
__weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);
1420-
__weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim);
1421-
__weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim);
1422-
__weak void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim);
1417+
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
1418+
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim);
1419+
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);
1420+
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim);
1421+
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim);
1422+
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim);
14231423

14241424
/* Peripheral State functions **************************************************/
14251425
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(TIM_HandleTypeDef *htim);

0 commit comments

Comments
 (0)