@@ -94,6 +94,72 @@ MBED_WEAK void TargetBSP_Init(void) {
9494 /** Do nothing */
9595}
9696
97+ void GPIO_Full_Init (void ) {
98+ GPIO_InitTypeDef GPIO_InitStruct ;
99+
100+ GPIO_InitStruct .Pin = GPIO_PIN_All ;
101+ GPIO_InitStruct .Mode = GPIO_MODE_ANALOG ;
102+ GPIO_InitStruct .Speed = GPIO_SPEED_FREQ_LOW ;
103+ #if !TARGET_STM32F1
104+ GPIO_InitStruct .Pull = GPIO_NOPULL ;
105+ GPIO_InitStruct .Alternate = 0 ;
106+ #endif
107+ #if defined(GPIOA )
108+ __HAL_RCC_GPIOA_CLK_ENABLE ();
109+ HAL_GPIO_Init (GPIOA , & GPIO_InitStruct );
110+ __HAL_RCC_GPIOA_CLK_DISABLE ();
111+ #endif
112+ #if defined(GPIOB )
113+ __HAL_RCC_GPIOB_CLK_ENABLE ();
114+ HAL_GPIO_Init (GPIOB , & GPIO_InitStruct );
115+ __HAL_RCC_GPIOB_CLK_DISABLE ();
116+ #endif
117+ #if defined(GPIOC )
118+ __HAL_RCC_GPIOC_CLK_ENABLE ();
119+ HAL_GPIO_Init (GPIOC , & GPIO_InitStruct );
120+ __HAL_RCC_GPIOC_CLK_DISABLE ();
121+ #endif
122+ #if defined(GPIOD )
123+ __HAL_RCC_GPIOD_CLK_ENABLE ();
124+ HAL_GPIO_Init (GPIOD , & GPIO_InitStruct );
125+ __HAL_RCC_GPIOD_CLK_DISABLE ();
126+ #endif
127+ #if defined(GPIOE )
128+ __HAL_RCC_GPIOE_CLK_ENABLE ();
129+ HAL_GPIO_Init (GPIOE , & GPIO_InitStruct );
130+ __HAL_RCC_GPIOE_CLK_DISABLE ();
131+ #endif
132+ #if defined(GPIOF )
133+ __HAL_RCC_GPIOF_CLK_ENABLE ();
134+ HAL_GPIO_Init (GPIOF , & GPIO_InitStruct );
135+ __HAL_RCC_GPIOF_CLK_DISABLE ();
136+ #endif
137+ #if defined(GPIOG )
138+ __HAL_RCC_GPIOG_CLK_ENABLE ();
139+ HAL_GPIO_Init (GPIOG , & GPIO_InitStruct );
140+ __HAL_RCC_GPIOG_CLK_DISABLE ();
141+ #endif
142+ #if defined(GPIOH )
143+ __HAL_RCC_GPIOH_CLK_ENABLE ();
144+ HAL_GPIO_Init (GPIOH , & GPIO_InitStruct );
145+ __HAL_RCC_GPIOH_CLK_DISABLE ();
146+ #endif
147+ #if defined(GPIOI )
148+ __HAL_RCC_GPIOI_CLK_ENABLE ();
149+ HAL_GPIO_Init (GPIOI , & GPIO_InitStruct );
150+ __HAL_RCC_GPIOI_CLK_DISABLE ();
151+ #endif
152+ #if defined(GPIOJ )
153+ __HAL_RCC_GPIOJ_CLK_ENABLE ();
154+ HAL_GPIO_Init (GPIOJ , & GPIO_InitStruct );
155+ __HAL_RCC_GPIOJ_CLK_DISABLE ();
156+ #endif
157+ #if defined(GPIOK )
158+ __HAL_RCC_GPIOK_CLK_ENABLE ();
159+ HAL_GPIO_Init (GPIOK , & GPIO_InitStruct );
160+ __HAL_RCC_GPIOK_CLK_DISABLE ();
161+ #endif
162+ }
97163
98164// This function is called after RAM initialization and before main.
99165void mbed_sdk_init ()
@@ -226,6 +292,9 @@ void mbed_sdk_init()
226292#endif /* ! MBED_CONF_TARGET_LSE_AVAILABLE */
227293#endif /* DEVICE_RTC */
228294
295+ /* Reset all GPIO */
296+ GPIO_Full_Init ();
297+
229298 /* BSP initialization hook (external RAM, etc) */
230299 TargetBSP_Init ();
231300
0 commit comments