From 0b2d68616057e1dd1b1f78c9ba70b71caf502479 Mon Sep 17 00:00:00 2001
From: jmz52 <jmz52@users.noreply.github.com>
Date: Sat, 18 Aug 2018 07:27:10 +0300
Subject: [PATCH] Fix "SD init fail" problem for STM32F1 (#11579)

Fix "SD init fail" problem for STM32F1 caused by incorrect SS pin state and incorrect SPI mode. Issue #11225
---
 Marlin/src/HAL/HAL_STM32F1/HAL_spi_Stm32f1.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Marlin/src/HAL/HAL_STM32F1/HAL_spi_Stm32f1.cpp b/Marlin/src/HAL/HAL_STM32F1/HAL_spi_Stm32f1.cpp
index 58d22ac572..02314a346c 100644
--- a/Marlin/src/HAL/HAL_STM32F1/HAL_spi_Stm32f1.cpp
+++ b/Marlin/src/HAL/HAL_STM32F1/HAL_spi_Stm32f1.cpp
@@ -81,8 +81,8 @@ void spiBegin() {
   #if !PIN_EXISTS(SS)
     #error "SS_PIN not defined!"
   #endif
-  WRITE(SS_PIN, HIGH);
   SET_OUTPUT(SS_PIN);
+  WRITE(SS_PIN, HIGH);
 }
 
 /**
@@ -104,7 +104,7 @@ void spiInit(uint8_t spiRate) {
     case SPI_SPEED_6:       clock = SPI_CLOCK_DIV64; break;
     default:                clock = SPI_CLOCK_DIV2; // Default from the SPI library
   }
-  spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);
+  spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE3);
   SPI.begin();
 }