• 카테고리

    질문 & 답변
  • 세부 분야

    임베디드 · IoT

  • 해결 여부

    해결됨

SDIO 강의 내용 누락여부 확인 부탁드립니다.

20.06.28 07:43 작성 조회수 342

0

SDIO를 통한 파일시스템 강의중 일부 내용이 빠져있어서  마운팅이 되지 않고 FR_DISK_ERR 오류가 발생합니다.

sd_diskio.c 파일의 끝부분에

/* USER CODE BEGIN afterIoctlSection */
/* can be used to modify previous code / undefine following code / add new code */
/* USER CODE END afterIoctlSection */

/* USER CODE BEGIN callbackSection */
/* can be used to modify / following code or add new code */

void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)
{
    WriteStatus =1;
}


void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd)
{
    ReadStatus =1;
}

두개의 콜백함수를 추가하니 모든 문제가 말끔히 해결되었는데,

강의파일 작업중 혹 저 함수들을 미리 작성하고 강의중에  저 내용이 빠진것이 아닌지 확인 부탁드립니다.

좋은 강의 감사합니다.

답변 3

·

답변을 작성해보세요.

0

아 그렇군요~

버전이 높아지면서 바뀐게 많아졌나 봅니다..ㅠㅜ

저도 다음에 확인을 좀 해보고 바뀐게 뭐가있나 싹 정리를 해봐야겠네요.

알려주셔서 감사합니다!

그럼 즐거운 STM32 개발 되시기 바랍니다~

감사합니다.

0

담천인님의 프로필

담천인

질문자

2020.06.30

확인해보니 버전 문제인듯 합니다.

제가 사용하는 버전은 통합 IDE라, 아마도 많은 부분에 변경이 있는듯 합니다.

FAT 뿐만 아니라, 이더넷 쪽 코드역시 초기에 IP주소및 넷마스크 게이트 웨이를 설정해도 자동으로 내부 적으로 랜덤으로 생성하는 코드가 생성 되네요..

HAL_Delay 역시 카운트값을 증가시키는 콜백루틴이 공백으로 생성되어서, 새로 코딩을 하지 않으면 동작하지 않고, 많은 부분이 다르게 적용되네요, 

우선은 강의에 사용하신 4.6 버전으로 하니 한번에 정상적으로 동작하는것을 확인 하였습니다.

집필하신 모든강의를 들어볼 예정입니다. 

앞으로도 좋은 강의 부탁드립니다.

감사합니다.

0

안녕하세요!

제가 사용한 버전에서는 sd_diskio.c 파일 맨 하단에

void BSP_SD_WriteCpltCallback(void)

{

  WriteStatus = 1;

}

void BSP_SD_ReadCpltCallback(void)

{

  ReadStatus = 1;

}

이 코드가 생성되어 있습니다. 제가 작성한게 아니고 자동으로 생성된 코드입니다.

어쩌면 제가 사용했던 fatfs 버전과 다를 수도 있을 것 같습니다.

혹은 CubeMX 설정이 저와 다를수도 있구요.

그 내용은 한번 확인해보도록 하겠습니다.

지적해주셔서 감사합니다~