@@ -32,37 +32,23 @@ static inline void pin_PullConfig(GPIO_TypeDef *gpio, uint32_t ll_pin, uint32_t
3232{
3333#ifdef STM32F1xx
3434 uint32_t function = LL_GPIO_GetPinMode (gpio , ll_pin );
35- #endif
36- hsem_lock (CFG_HW_GPIO_SEMID , HSEM_LOCK_DEFAULT_RETRY );
37- switch (pull_config ) {
38- case GPIO_PULLUP :
39- #ifdef STM32F1xx
40- if (function == LL_GPIO_MODE_FLOATING ) {
41- LL_GPIO_SetPinMode (gpio , ll_pin , LL_GPIO_MODE_INPUT );
42- }
43- #endif
44- LL_GPIO_SetPinPull (gpio , ll_pin , LL_GPIO_PULL_UP );
45- break ;
46- case GPIO_PULLDOWN :
47- #ifdef STM32F1xx
48- if (function == LL_GPIO_MODE_FLOATING ) {
49- LL_GPIO_SetPinMode (gpio , ll_pin , LL_GPIO_MODE_INPUT );
50- }
51- #endif
52- LL_GPIO_SetPinPull (gpio , ll_pin , LL_GPIO_PULL_DOWN );
53- break ;
54- default :
55- #ifdef STM32F1xx
56- /* Input+NoPull = Floating for F1 family */
57- if (function == LL_GPIO_MODE_INPUT ) {
58- LL_GPIO_SetPinMode (gpio , ll_pin , LL_GPIO_MODE_FLOATING );
59- }
60- #else
61- LL_GPIO_SetPinPull (gpio , ll_pin , LL_GPIO_PULL_NO );
62- #endif
63- break ;
35+ if (pull_config == LL_GPIO_PULL_NO ) {
36+ /* Input+NoPull = Floating for F1 family */
37+ if (function == LL_GPIO_MODE_INPUT ) {
38+ LL_GPIO_SetPinMode (gpio , ll_pin , LL_GPIO_MODE_FLOATING );
39+ }
40+ } else {
41+ /* Input+PullUp/PullDown = Input for F1 family */
42+ if (function == LL_GPIO_MODE_FLOATING ) {
43+ LL_GPIO_SetPinMode (gpio , ll_pin , LL_GPIO_MODE_INPUT );
44+ }
45+ LL_GPIO_SetPinPull (gpio , ll_pin , pull_config );
6446 }
47+ #else
48+ hsem_lock (CFG_HW_GPIO_SEMID , HSEM_LOCK_DEFAULT_RETRY );
49+ LL_GPIO_SetPinPull (gpio , ll_pin , pull_config );
6550 hsem_unlock (CFG_HW_GPIO_SEMID );
51+ #endif
6652}
6753
6854static inline void pin_SetAFPin (GPIO_TypeDef * gpio , PinName pin , uint32_t afnum )
0 commit comments