diff --git a/src/gpio.rs b/src/gpio.rs
index a618d117eb057dfc92ed205046c13d1c7d83d540..b85b8db207e61ab0b1875ab7df9c251b2a42c1aa 100644
--- a/src/gpio.rs
+++ b/src/gpio.rs
@@ -528,8 +528,7 @@ gpio!(GPIOB, gpiob, gpiob, gpioben, gpiobrst, PBx, [
     PB15: (pb15, 15, Input<Floating>, AFRH),
 ]);
 
-/*
-gpio!(GPIOC, gpioc, gpiob, gpiocen, gpiocrst, PCx, [
+gpio!(GPIOC, gpioc, gpioh, gpiocen, gpiocrst, PCx, [
     PC0: (pc0, 0, Input<Floating>, AFRL),
     PC1: (pc1, 1, Input<Floating>, AFRL),
     PC2: (pc2, 2, Input<Floating>, AFRL),
@@ -548,7 +547,7 @@ gpio!(GPIOC, gpioc, gpiob, gpiocen, gpiocrst, PCx, [
     PC15: (pc15, 15, Input<Floating>, AFRH),
 ]);
 
-gpio!(GPIOD, gpiod, gpioc, gpioden, gpiodrst, PDx, [
+gpio!(GPIOD, gpiod, gpioh, gpioden, gpiodrst, PDx, [
     PD0: (pd0, 0, Input<Floating>, AFRL),
     PD1: (pd1, 1, Input<Floating>, AFRL),
     PD2: (pd2, 2, Input<Floating>, AFRL),
@@ -567,10 +566,10 @@ gpio!(GPIOD, gpiod, gpioc, gpioden, gpiodrst, PDx, [
     PD15: (pd15, 15, Input<Floating>, AFRH),
 ]);
 
-gpio!(GPIOE, gpioe, gpioc, gpioeen, gpioerst, PEx, [
+gpio!(GPIOE, gpioe, gpioh, gpioeen, gpioerst, PEx, [
     PE0: (pe0, 0, Input<Floating>, AFRL),
     PE1: (pe1, 1, Input<Floating>, AFRL),
-    PE2: (pe2, 2, Input<Floating>, AFRL),gpio
+    PE2: (pe2, 2, Input<Floating>, AFRL),
     PE3: (pe3, 3, Input<Floating>, AFRL),
     PE4: (pe4, 4, Input<Floating>, AFRL),
     PE5: (pe5, 5, Input<Floating>, AFRL),
@@ -585,16 +584,60 @@ gpio!(GPIOE, gpioe, gpioc, gpioeen, gpioerst, PEx, [
     PE14: (pe14, 14, Input<Floating>, AFRH),
     PE15: (pe15, 15, Input<Floating>, AFRH),
 ]);
-*/
 
-/*
-gpio!(GPIOF, gpiof, gpioc, iopfen, iopfrst, PFx, [
+gpio!(GPIOF, gpiof, gpioh, gpiofen, gpiofrst, PFx, [
     PF0: (pf0, 0, Input<Floating>, AFRL),
     PF1: (pf1, 1, Input<Floating>, AFRL),
     PF2: (pf2, 2, Input<Floating>, AFRL),
-    PF4: (pf3, 4, Input<Floating>, AFRL),
+    PF3: (pf3, 3, Input<Floating>, AFRL),
+    PF4: (pf4, 4, Input<Floating>, AFRL),
+    PF5: (pf5, 5, Input<Floating>, AFRL),
     PF6: (pf6, 6, Input<Floating>, AFRL),
+    PF7: (pf7, 7, Input<Floating>, AFRL),
+    PF8: (pf8, 8, Input<Floating>, AFRH),
     PF9: (pf9, 9, Input<Floating>, AFRH),
     PF10: (pf10, 10, Input<Floating>, AFRH),
+    PF11: (pf11, 11, Input<Floating>, AFRH),
+    PF12: (pf12, 12, Input<Floating>, AFRH),
+    PF13: (pf13, 13, Input<Floating>, AFRH),
+    PF14: (pf14, 14, Input<Floating>, AFRH),
+    PF15: (pf15, 15, Input<Floating>, AFRH),
+]);
+
+gpio!(GPIOG, gpiog, gpioh, gpiogen, gpiogrst, PGx, [
+    PG0: (pg0, 0, Input<Floating>, AFRL),
+    PG1: (pg1, 1, Input<Floating>, AFRL),
+    PG2: (pg2, 2, Input<Floating>, AFRL),
+    PG3: (pg3, 3, Input<Floating>, AFRL),
+    PG4: (pg4, 4, Input<Floating>, AFRL),
+    PG5: (pg5, 5, Input<Floating>, AFRL),
+    PG6: (pg6, 6, Input<Floating>, AFRL),
+    PG7: (pg7, 7, Input<Floating>, AFRL),
+    PG8: (pg8, 8, Input<Floating>, AFRH),
+    PG9: (pg9, 9, Input<Floating>, AFRH),
+    PG10: (pg10, 10, Input<Floating>, AFRH),
+    PG11: (pg11, 11, Input<Floating>, AFRH),
+    PG12: (pg12, 12, Input<Floating>, AFRH),
+    PG13: (pg13, 13, Input<Floating>, AFRH),
+    PG14: (pg14, 14, Input<Floating>, AFRH),
+    PG15: (pg15, 15, Input<Floating>, AFRH),
+]);
+
+gpio!(GPIOH, gpioh, gpioh, gpiohen, gpiohrst, PHx, [
+    PH0: (ph0, 0, Input<Floating>, AFRL),
+    PH1: (ph1, 1, Input<Floating>, AFRL),
+    PH2: (ph2, 2, Input<Floating>, AFRL),
+    PH3: (ph3, 3, Input<Floating>, AFRL),
+    PH4: (ph4, 4, Input<Floating>, AFRL),
+    PH5: (ph5, 5, Input<Floating>, AFRL),
+    PH6: (ph6, 6, Input<Floating>, AFRL),
+    PH7: (ph7, 7, Input<Floating>, AFRL),
+    PH8: (ph8, 8, Input<Floating>, AFRH),
+    PH9: (ph9, 9, Input<Floating>, AFRH),
+    PH10: (ph10, 10, Input<Floating>, AFRH),
+    PH11: (ph11, 11, Input<Floating>, AFRH),
+    PH12: (ph12, 12, Input<Floating>, AFRH),
+    PH13: (ph13, 13, Input<Floating>, AFRH),
+    PH14: (ph14, 14, Input<Floating>, AFRH),
+    PH15: (ph15, 15, Input<Floating>, AFRH),
 ]);
-*/