Skip to content

Commit 41820f4

Browse files
authored
Merge pull request stm32duino#1169 from fpistm/updateF4
Update STM32F4 HAL drivers
2 parents 22ef1b4 + bf63509 commit 41820f4

21 files changed

+725
-561
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
From 8c34ed0da9a90ca07423cadb1f49996d779b97b3 Mon Sep 17 00:00:00 2001
2+
From: Michael Sharman <[email protected]>
3+
Date: Fri, 4 Sep 2020 19:03:07 +1000
4+
Subject: [PATCH 1/1] [F4] Fix IS_ADC_CHANNEL()
5+
6+
Have to be fixed in STM32CubeF4:
7+
https://github.com/STMicroelectronics/STM32CubeF4/pull/36
8+
9+
Signed-off-by: Michael Sharman <[email protected]>
10+
Co-authored-by: Frederic Pillon <[email protected]>
11+
---
12+
.../Inc/stm32f4xx_hal_adc_ex.h | 16 ++++++++--------
13+
1 file changed, 8 insertions(+), 8 deletions(-)
14+
15+
diff --git a/system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h b/system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h
16+
index 6587acc8..f796e43d 100644
17+
--- a/system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h
18+
+++ b/system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h
19+
@@ -219,7 +219,7 @@ typedef struct
20+
#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F401xC || STM32F401xE || STM32F410xx || STM32F412Zx ||
21+
STM32F412Vx || STM32F412Rx || STM32F412Cx */
22+
23+
-#if defined(STM32F411xE) || defined(STM32F413xx) || defined(STM32F423xx) || defined(STM32F427xx) || defined(STM32F437xx) ||\
24+
+#if defined(STM32F411xE) || defined(STM32F413xx) || defined(STM32F423xx) || defined(STM32F427xx) || defined(STM32F437xx) || \
25+
defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
26+
#define ADC_CHANNEL_DIFFERENCIATION_TEMPSENSOR_VBAT 0x10000000U /* Dummy bit for driver internal usage, not used in ADC channel setting registers CR1 or SQRx */
27+
#define ADC_CHANNEL_TEMPSENSOR ((uint32_t)ADC_CHANNEL_18 | ADC_CHANNEL_DIFFERENCIATION_TEMPSENSOR_VBAT)
28+
@@ -304,17 +304,17 @@ HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef* hadc, ADC_
29+
*/
30+
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || \
31+
defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) || \
32+
- defined(STM32F410Rx) || defined(STM32F411xE) || defined(STM32F412Zx) || defined(STM32F412Vx) || \
33+
- defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
34+
+ defined(STM32F410Rx) || defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || \
35+
+ defined(STM32F412Cx)
36+
#define IS_ADC_CHANNEL(CHANNEL) ((CHANNEL) <= ADC_CHANNEL_18)
37+
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F401xC || STM32F401xE || STM32F410xx || STM32F411xE ||
38+
- STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx || STM32F413xx || STM32F423xx */
39+
+#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F401xC || STM32F401xE || STM32F410xx || STM32F412Zx ||
40+
+ STM32F412Vx || STM32F412Rx || STM32F412Cx */
41+
42+
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \
43+
- defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
44+
+#if defined(STM32F411xE) || defined(STM32F413xx) || defined(STM32F423xx) || defined(STM32F427xx) || defined(STM32F437xx) || \
45+
+ defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
46+
#define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) <= ADC_CHANNEL_18) || \
47+
((CHANNEL) == ADC_CHANNEL_TEMPSENSOR))
48+
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
49+
+#endif /* STM32F411xE || STM32F413xx || STM32F423xx || STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
50+
51+
#define IS_ADC_MODE(MODE) (((MODE) == ADC_MODE_INDEPENDENT) || \
52+
((MODE) == ADC_DUALMODE_REGSIMULT_INJECSIMULT) || \
53+
--
54+
2.27.0.windows.1
55+

CI/utils/patch/HAL/F4/0001-F4-I2C-HAL-fix-generate-Start-only-once-Stop-is-fini.patch

-146
This file was deleted.

system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpsmbus.h

+7-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,11 @@ typedef struct
133133
* @brief FMPSMBUS handle Structure definition
134134
* @{
135135
*/
136+
#if (USE_HAL_FMPSMBUS_REGISTER_CALLBACKS == 1)
136137
typedef struct __FMPSMBUS_HandleTypeDef
138+
#else
139+
typedef struct
140+
#endif /* USE_HAL_FMPSMBUS_REGISTER_CALLBACKS */
137141
{
138142
FMPI2C_TypeDef *Instance; /*!< FMPSMBUS registers base address */
139143

@@ -327,6 +331,7 @@ typedef void (*pFMPSMBUS_AddrCallbackTypeDef)(FMPSMBUS_HandleTypeDef *hfmpsmbus
327331
#define FMPSMBUS_NEXT_FRAME ((uint32_t)(FMPSMBUS_RELOAD_MODE | FMPSMBUS_SOFTEND_MODE))
328332
#define FMPSMBUS_FIRST_AND_LAST_FRAME_NO_PEC FMPSMBUS_AUTOEND_MODE
329333
#define FMPSMBUS_LAST_FRAME_NO_PEC FMPSMBUS_AUTOEND_MODE
334+
#define FMPSMBUS_FIRST_FRAME_WITH_PEC ((uint32_t)(FMPSMBUS_SOFTEND_MODE | FMPSMBUS_SENDPEC_MODE))
330335
#define FMPSMBUS_FIRST_AND_LAST_FRAME_WITH_PEC ((uint32_t)(FMPSMBUS_AUTOEND_MODE | FMPSMBUS_SENDPEC_MODE))
331336
#define FMPSMBUS_LAST_FRAME_WITH_PEC ((uint32_t)(FMPSMBUS_AUTOEND_MODE | FMPSMBUS_SENDPEC_MODE))
332337

@@ -583,11 +588,12 @@ typedef void (*pFMPSMBUS_AddrCallbackTypeDef)(FMPSMBUS_HandleTypeDef *hfmpsmbus
583588
((REQUEST) == FMPSMBUS_NO_STARTSTOP))
584589

585590

586-
#define IS_FMPSMBUS_TRANSFER_OPTIONS_REQUEST(REQUEST) (IS_FMPSMBUS_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST) || \
591+
#define IS_FMPSMBUS_TRANSFER_OPTIONS_REQUEST(REQUEST) (IS_FMPSMBUS_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST) || \
587592
((REQUEST) == FMPSMBUS_FIRST_FRAME) || \
588593
((REQUEST) == FMPSMBUS_NEXT_FRAME) || \
589594
((REQUEST) == FMPSMBUS_FIRST_AND_LAST_FRAME_NO_PEC) || \
590595
((REQUEST) == FMPSMBUS_LAST_FRAME_NO_PEC) || \
596+
((REQUEST) == FMPSMBUS_FIRST_FRAME_WITH_PEC) || \
591597
((REQUEST) == FMPSMBUS_FIRST_AND_LAST_FRAME_WITH_PEC) || \
592598
((REQUEST) == FMPSMBUS_LAST_FRAME_WITH_PEC))
593599

system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hcd.h

+19-18
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,9 @@ typedef struct
143143

144144
/* Exported macro ------------------------------------------------------------*/
145145
/** @defgroup HCD_Exported_Macros HCD Exported Macros
146-
* @brief macros to handle interrupts and specific clock configurations
147-
* @{
148-
*/
146+
* @brief macros to handle interrupts and specific clock configurations
147+
* @{
148+
*/
149149
#define __HAL_HCD_ENABLE(__HANDLE__) (void)USB_EnableGlobalInt ((__HANDLE__)->Instance)
150150
#define __HAL_HCD_DISABLE(__HANDLE__) (void)USB_DisableGlobalInt ((__HANDLE__)->Instance)
151151

@@ -214,10 +214,16 @@ typedef void (*pHCD_HC_NotifyURBChangeCallbackTypeDef)(HCD_HandleTypeDef *hhcd,
214214
* @}
215215
*/
216216

217-
HAL_StatusTypeDef HAL_HCD_RegisterCallback(HCD_HandleTypeDef *hhcd, HAL_HCD_CallbackIDTypeDef CallbackID, pHCD_CallbackTypeDef pCallback);
218-
HAL_StatusTypeDef HAL_HCD_UnRegisterCallback(HCD_HandleTypeDef *hhcd, HAL_HCD_CallbackIDTypeDef CallbackID);
217+
HAL_StatusTypeDef HAL_HCD_RegisterCallback(HCD_HandleTypeDef *hhcd,
218+
HAL_HCD_CallbackIDTypeDef CallbackID,
219+
pHCD_CallbackTypeDef pCallback);
220+
221+
HAL_StatusTypeDef HAL_HCD_UnRegisterCallback(HCD_HandleTypeDef *hhcd,
222+
HAL_HCD_CallbackIDTypeDef CallbackID);
223+
224+
HAL_StatusTypeDef HAL_HCD_RegisterHC_NotifyURBChangeCallback(HCD_HandleTypeDef *hhcd,
225+
pHCD_HC_NotifyURBChangeCallbackTypeDef pCallback);
219226

220-
HAL_StatusTypeDef HAL_HCD_RegisterHC_NotifyURBChangeCallback(HCD_HandleTypeDef *hhcd, pHCD_HC_NotifyURBChangeCallbackTypeDef pCallback);
221227
HAL_StatusTypeDef HAL_HCD_UnRegisterHC_NotifyURBChangeCallback(HCD_HandleTypeDef *hhcd);
222228
#endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
223229
/**
@@ -235,6 +241,7 @@ HAL_StatusTypeDef HAL_HCD_HC_SubmitRequest(HCD_HandleTypeDef *hhcd, uint8_t ch_n
235241

236242
/* Non-Blocking mode: Interrupt */
237243
void HAL_HCD_IRQHandler(HCD_HandleTypeDef *hhcd);
244+
void HAL_HCD_WKUP_IRQHandler(HCD_HandleTypeDef *hhcd);
238245
void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd);
239246
void HAL_HCD_Connect_Callback(HCD_HandleTypeDef *hhcd);
240247
void HAL_HCD_Disconnect_Callback(HCD_HandleTypeDef *hhcd);
@@ -256,6 +263,9 @@ HAL_StatusTypeDef HAL_HCD_Stop(HCD_HandleTypeDef *hhcd);
256263
/**
257264
* @}
258265
*/
266+
/**
267+
* @}
268+
*/
259269

260270
/* Peripheral State functions ************************************************/
261271
/** @addtogroup HCD_Exported_Functions_Group4 Peripheral State functions
@@ -267,6 +277,7 @@ HCD_HCStateTypeDef HAL_HCD_HC_GetState(HCD_HandleTypeDef *hhcd, uint8_t chn
267277
uint32_t HAL_HCD_HC_GetXferCount(HCD_HandleTypeDef *hhcd, uint8_t chnum);
268278
uint32_t HAL_HCD_GetCurrentFrame(HCD_HandleTypeDef *hhcd);
269279
uint32_t HAL_HCD_GetCurrentSpeed(HCD_HandleTypeDef *hhcd);
280+
270281
/**
271282
* @}
272283
*/
@@ -277,13 +288,11 @@ uint32_t HAL_HCD_GetCurrentSpeed(HCD_HandleTypeDef *hhcd);
277288

278289
/* Private macros ------------------------------------------------------------*/
279290
/** @defgroup HCD_Private_Macros HCD Private Macros
280-
* @{
281-
*/
282-
291+
* @{
292+
*/
283293
/**
284294
* @}
285295
*/
286-
287296
/* Private functions prototypes ----------------------------------------------*/
288297
/** @defgroup HCD_Private_Functions_Prototypes HCD Private Functions Prototypes
289298
* @{
@@ -298,14 +307,6 @@ uint32_t HAL_HCD_GetCurrentSpeed(HCD_HandleTypeDef *hhcd);
298307
* @{
299308
*/
300309

301-
/**
302-
* @}
303-
*/
304-
305-
/**
306-
* @}
307-
*/
308-
309310
/**
310311
* @}
311312
*/

system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h

+4
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,11 @@ typedef enum
182182
* @brief I2C handle Structure definition
183183
* @{
184184
*/
185+
#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
185186
typedef struct __I2C_HandleTypeDef
187+
#else
188+
typedef struct
189+
#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
186190
{
187191
I2C_TypeDef *Instance; /*!< I2C registers base address */
188192

0 commit comments

Comments
 (0)