I encountered an unstable initialization of the Micro SD card on the WeAct stm32h743vit6 board.
I have several brand new WeAct Studio stm32h743vit6 boards, and I'm running the same code on these boards.
Code: Select all
#include <STM32SD.h> // https://github.com/stm32duino/STM32SD
#define SD_data0 PC8
#define SD_data1 PC9
#define SD_data2 PC10
#define SD_data3 PC11
#define SD_CMD PD2
#define SD_CK PC12
// SD card
#ifndef SD_DETECT_PIN
#define SD_DETECT_PIN PD4
#endif
File myFile;
#define LED PE3
void setup() {
pinMode(LED, OUTPUT);
SD.setDx(SD_data0, SD_data1, SD_data2, SD_data3);
SD.setCMD(SD_CMD);
SD.setCK(SD_CK);
Serial.begin(9600);
while (!Serial && millis() < 5000) {
;
}
if (!SD.begin(SD_DETECT_PIN, HIGH)) {
Serial.println(" Micro SD card Error!");
digitalWrite(LED, LOW); // LED OFF
} else {
Serial.println("Micro SD card OK !");
digitalWrite(LED, HIGH); // LED ON
}
}
void loop() {
// put your main code here, to run repeatedly:
}On other boards, initialization is very unstable, and the MicroSD card may initialize only once out of 10.
For example, when power is supplied to one of the boards, the following happens:
Code: Select all
Micro SD card Error!
Micro SD card OK !
Micro SD card Error!
Micro SD card OK !
Micro SD card OK !
Micro SD card Error!
Micro SD card OK !
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!
Micro SD card Error!Arduino IDE version 2.3.10
STM32duino STM32SD version 1.4.0
Library STM32 microcontroller version 2.12.0
What could be the problem, and how can I find the cause?