Browse Source

STM32F1: STM32_HIGH_DENSITY is auto defined in HAL (#14057)

- Fix the `fsmc` and `sdio` units which required hard defines for use.
Tanguy Pruvot 5 years ago
parent
commit
402f1f7307

+ 7
- 2
Marlin/src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp View File

21
  *
21
  *
22
  */
22
  */
23
 
23
 
24
-#if defined(ARDUINO_ARCH_STM32F1) && (defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY))
24
+#ifdef ARDUINO_ARCH_STM32F1
25
+
26
+#include <libmaple/stm32.h>
27
+
28
+#if defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY)
25
 
29
 
26
 #include "HAL_sdio_STM32F1.h"
30
 #include "HAL_sdio_STM32F1.h"
27
 
31
 
276
   return true;
280
   return true;
277
 }
281
 }
278
 
282
 
279
-#endif // ARDUINO_ARCH_STM32F1 && (STM32_HIGH_DENSITY || STM32_XL_DENSITY)
283
+#endif // STM32_HIGH_DENSITY || STM32_XL_DENSITY
284
+#endif // ARDUINO_ARCH_STM32F1

+ 11
- 6
Marlin/src/HAL/HAL_STM32F1/u8g_com_stm32duino_fsmc.cpp View File

26
  * Communication interface for FSMC
26
  * Communication interface for FSMC
27
  */
27
  */
28
 
28
 
29
-#if defined(ARDUINO_ARCH_STM32F1) && (defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY))
30
-
31
 #include "../../inc/MarlinConfig.h"
29
 #include "../../inc/MarlinConfig.h"
32
 
30
 
31
+#if defined(ARDUINO_ARCH_STM32F1) && (defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY))
32
+
33
 #if HAS_GRAPHICAL_LCD
33
 #if HAS_GRAPHICAL_LCD
34
 
34
 
35
 #include "U8glib.h"
35
 #include "U8glib.h"
226
   gpio_set_mode(GPIOD,  9, GPIO_AF_OUTPUT_PP);  // FSMC_D14
226
   gpio_set_mode(GPIOD,  9, GPIO_AF_OUTPUT_PP);  // FSMC_D14
227
   gpio_set_mode(GPIOD, 10, GPIO_AF_OUTPUT_PP);  // FSMC_D15
227
   gpio_set_mode(GPIOD, 10, GPIO_AF_OUTPUT_PP);  // FSMC_D15
228
 
228
 
229
-  gpio_set_mode(GPIOD,  4, GPIO_AF_OUTPUT_PP);   // FSMC_NOE
230
-  gpio_set_mode(GPIOD,  5, GPIO_AF_OUTPUT_PP);   // FSMC_NWE
229
+  gpio_set_mode(GPIOD,  4, GPIO_AF_OUTPUT_PP);  // FSMC_NOE
230
+  gpio_set_mode(GPIOD,  5, GPIO_AF_OUTPUT_PP);  // FSMC_NWE
231
 
231
 
232
   gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP);  //FSMC_CS_NEx
232
   gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP);  //FSMC_CS_NEx
233
   gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP);  //FSMC_RS_Ax
233
   gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP);  //FSMC_RS_Ax
234
 
234
 
235
-  FSMC_NOR_PSRAM4_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN;
236
-  FSMC_NOR_PSRAM4_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME;
235
+  #ifdef STM32_XL_DENSITY
236
+    FSMC_NOR_PSRAM4_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN;
237
+    FSMC_NOR_PSRAM4_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME;
238
+  #else // PSRAM1 for STM32F103V (high density)
239
+    FSMC_NOR_PSRAM1_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN;
240
+    FSMC_NOR_PSRAM1_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME;
241
+  #endif
237
 
242
 
238
   afio_remap(AFIO_REMAP_FSMC_NADV);
243
   afio_remap(AFIO_REMAP_FSMC_NADV);
239
 
244
 

Loading…
Cancel
Save