STM32F446RE NUCLEO (PlatformIO + VSCode)에서 Seeed SD 카드 실드 사용

1833 단어 PlatformIOArduino
STM32F446RE NUCLEO 보드를 사용하여 Arduino 개발 환경에서 그래프 작성 프로그램을 개발 중이지만 그래프 데이터 등을 저장하기 위해 SD 카드를 연결했습니다.
사용할 수 있는 SD 카드는 여러 가지 있습니다만 Seeed의 SD 카드 실드를 사용했습니다.
※ 이것을 사용하면 마이크로 컴퓨터 보드에 실드를 삽입하는 것만으로 SD 카드에 읽고 쓸 수 있습니다. (단, 마이크로 컴퓨터 보드의 리셋 버튼을 누르기가 어렵습니다)


그 때에 주의하는 것이 2개 있었습니다.

【주의점 1】SD 카드 실드의 이면에 있는 랜드로 3개(CLK,DI,DO)의 신호의 배선을 변경합니다.

<설명> STM32F446RE NUCLEO 보드에는 ICSP 소켓이 탑재되어 있지 않으므로 실드 배선을 변경해야 합니다. SD 카드 쉴드 이면에 있는 랜드의 디폴트의 배선을 나이프등으로 3개소 절단하고 나서 땜납으로 브릿지 해 다시 배선합니다. (절단 할 때 랜드 사이의 배선도 절단하지 않도록주의하십시오)


【주의점 2】 부가되어 있던 SD 라이브러리를 삭제한 후, 새롭게 올바른 SD 라이브러리를 덧붙입니다.

<설명> 이 프로그램은 Adafruit_GFX.h와 Adafruit_HX8357.h 라이브러리를 사용하고 있으며, 라이브러리에 프로그램을 추가했을 때 SD 라이브러리도 함께 추가된 것 같습니다. 그러나 이 함께 부가되고 있던 SD 라이브러리는 Arduino 개발 환경용의 것이 아니었던 것 같아 컴파일시에 에러가 되었습니다. (Mbed 용?)

대처 방법은 아래와 같습니다.

<방법> PlatformIO의 이 프로그램의 폴더에 있는 ".pio>libdeps\nucleo f446re>SD"디렉토리에 있는 "src>utility"디렉토리의 Sd2Card.cpp 파일이 오류가 되었습니다.
거기서 SD 디렉토리 이하를 삭제한 후 새롭게 PlatformIO의 홈으로부터 Libraries 버튼을 눌러 Arduino 표준의(Arduino에서 제공되고 있는) SD 라이브러리를 부가합니다.

올바른 SD 라이브러리를 프로젝트에 추가합니다.


위의 대처에 의해, 정상적으로 컴파일이 종료해 SD카드의 읽고 쓰기가 가능한 것을 확인했습니다.

좋은 웹페이지 즐겨찾기