diff --git a/stmhal/main.c b/stmhal/main.c
index f39a86b7ae699e385d43dd3dabdfbe56140bcbd7..b5d0916f3a71848844c0be077d923b75723ab9d8 100644
--- a/stmhal/main.c
+++ b/stmhal/main.c
@@ -372,9 +372,9 @@ int main(void) {
         // The STM32F746 doesn't really have CCM memory, but it does have DTCM,
         // which behaves more or less like normal SRAM.
         __HAL_RCC_DTCMRAMEN_CLK_ENABLE();
-        #else
+        #elif defined(CCMDATARAM_BASE)
         // enable the CCM RAM
-        __CCMDATARAMEN_CLK_ENABLE();
+        __HAL_RCC_CCMDATARAMEN_CLK_ENABLE();
         #endif
     #endif
 
diff --git a/stmhal/mphalport.c b/stmhal/mphalport.c
index 028756c76c44a00fc859f5a00b72e0edaf1ee56b..6893701f56669b790e65b352a50053bec20fa212 100644
--- a/stmhal/mphalport.c
+++ b/stmhal/mphalport.c
@@ -104,11 +104,11 @@ void mp_hal_gpio_clock_enable(GPIO_TypeDef *gpio) {
     } else if (gpio == GPIOE) {
         __GPIOE_CLK_ENABLE();
     #endif
-    #ifdef __GPIOF_CLK_ENABLE
+    #if defined(GPIOF) && defined(__GPIOF_CLK_ENABLE)
     } else if (gpio == GPIOF) {
         __GPIOF_CLK_ENABLE();
     #endif
-    #ifdef __GPIOG_CLK_ENABLE
+    #if defined(GPIOG) && defined(__GPIOG_CLK_ENABLE)
     } else if (gpio == GPIOG) {
         __GPIOG_CLK_ENABLE();
     #endif