@@ -46,6 +46,72 @@ MBED_WEAK void TargetBSP_Init(void) {
4646 /** Do nothing */
4747}
4848
49+ void GPIO_Full_Init (void ) {
50+ GPIO_InitTypeDef GPIO_InitStruct ;
51+
52+ GPIO_InitStruct .Pin = GPIO_PIN_All ;
53+ GPIO_InitStruct .Mode = GPIO_MODE_ANALOG ;
54+ GPIO_InitStruct .Speed = GPIO_SPEED_FREQ_LOW ;
55+ #if !TARGET_STM32F1
56+ GPIO_InitStruct .Pull = GPIO_NOPULL ;
57+ GPIO_InitStruct .Alternate = 0 ;
58+ #endif
59+ #if defined(GPIOA )
60+ __HAL_RCC_GPIOA_CLK_ENABLE ();
61+ HAL_GPIO_Init (GPIOA , & GPIO_InitStruct );
62+ __HAL_RCC_GPIOA_CLK_DISABLE ();
63+ #endif
64+ #if defined(GPIOB )
65+ __HAL_RCC_GPIOB_CLK_ENABLE ();
66+ HAL_GPIO_Init (GPIOB , & GPIO_InitStruct );
67+ __HAL_RCC_GPIOB_CLK_DISABLE ();
68+ #endif
69+ #if defined(GPIOC )
70+ __HAL_RCC_GPIOC_CLK_ENABLE ();
71+ HAL_GPIO_Init (GPIOC , & GPIO_InitStruct );
72+ __HAL_RCC_GPIOC_CLK_DISABLE ();
73+ #endif
74+ #if defined(GPIOD )
75+ __HAL_RCC_GPIOD_CLK_ENABLE ();
76+ HAL_GPIO_Init (GPIOD , & GPIO_InitStruct );
77+ __HAL_RCC_GPIOD_CLK_DISABLE ();
78+ #endif
79+ #if defined(GPIOE )
80+ __HAL_RCC_GPIOE_CLK_ENABLE ();
81+ HAL_GPIO_Init (GPIOE , & GPIO_InitStruct );
82+ __HAL_RCC_GPIOE_CLK_DISABLE ();
83+ #endif
84+ #if defined(GPIOF )
85+ __HAL_RCC_GPIOF_CLK_ENABLE ();
86+ HAL_GPIO_Init (GPIOF , & GPIO_InitStruct );
87+ __HAL_RCC_GPIOF_CLK_DISABLE ();
88+ #endif
89+ #if defined(GPIOG )
90+ __HAL_RCC_GPIOG_CLK_ENABLE ();
91+ HAL_GPIO_Init (GPIOG , & GPIO_InitStruct );
92+ __HAL_RCC_GPIOG_CLK_DISABLE ();
93+ #endif
94+ #if defined(GPIOH )
95+ __HAL_RCC_GPIOH_CLK_ENABLE ();
96+ HAL_GPIO_Init (GPIOH , & GPIO_InitStruct );
97+ __HAL_RCC_GPIOH_CLK_DISABLE ();
98+ #endif
99+ #if defined(GPIOI )
100+ __HAL_RCC_GPIOI_CLK_ENABLE ();
101+ HAL_GPIO_Init (GPIOI , & GPIO_InitStruct );
102+ __HAL_RCC_GPIOI_CLK_DISABLE ();
103+ #endif
104+ #if defined(GPIOJ )
105+ __HAL_RCC_GPIOJ_CLK_ENABLE ();
106+ HAL_GPIO_Init (GPIOJ , & GPIO_InitStruct );
107+ __HAL_RCC_GPIOJ_CLK_DISABLE ();
108+ #endif
109+ #if defined(GPIOK )
110+ __HAL_RCC_GPIOK_CLK_ENABLE ();
111+ HAL_GPIO_Init (GPIOK , & GPIO_InitStruct );
112+ __HAL_RCC_GPIOK_CLK_DISABLE ();
113+ #endif
114+ }
49115
50116// This function is called after RAM initialization and before main.
51117void mbed_sdk_init ()
@@ -166,6 +232,9 @@ void mbed_sdk_init()
166232#endif /* ! MBED_CONF_TARGET_LSE_AVAILABLE */
167233#endif /* DEVICE_RTC */
168234
235+ /* Reset all GPIO */
236+ GPIO_Full_Init ();
237+
169238 /* BSP initialization hook (external RAM, etc) */
170239 TargetBSP_Init ();
171240
0 commit comments