summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--stmhal/pin.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/stmhal/pin.c b/stmhal/pin.c
index 2d7466d3cb..f71ca92d9c 100644
--- a/stmhal/pin.c
+++ b/stmhal/pin.c
@@ -285,6 +285,32 @@ STATIC mp_obj_t pin_obj_init(uint n_args, mp_obj_t *args) {
}
}
+ // enable the peripheral clock for the port of this pin
+ switch (self->port) {
+ case PORT_A: __GPIOA_CLK_ENABLE(); break;
+ case PORT_B: __GPIOB_CLK_ENABLE(); break;
+ case PORT_C: __GPIOC_CLK_ENABLE(); break;
+ case PORT_D: __GPIOD_CLK_ENABLE(); break;
+ #ifdef __GPIOE_CLK_ENABLE
+ case PORT_E: __GPIOE_CLK_ENABLE(); break;
+ #endif
+ #ifdef __GPIOF_CLK_ENABLE
+ case PORT_F: __GPIOF_CLK_ENABLE(); break;
+ #endif
+ #ifdef __GPIOG_CLK_ENABLE
+ case PORT_G: __GPIOG_CLK_ENABLE(); break;
+ #endif
+ #ifdef __GPIOH_CLK_ENABLE
+ case PORT_H: __GPIOH_CLK_ENABLE(); break;
+ #endif
+ #ifdef __GPIOI_CLK_ENABLE
+ case PORT_I: __GPIOI_CLK_ENABLE(); break;
+ #endif
+ #ifdef __GPIOJ_CLK_ENABLE
+ case PORT_J: __GPIOJ_CLK_ENABLE(); break;
+ #endif
+ }
+
// configure the GPIO as requested
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.Pin = self->pin_mask;