본문 바로가기
프로그래밍/임베디드

STM32F3 Discovery에서 USB 라이브러리 활용하기

by choies1 2013. 11. 10.
아래의 사이트를 보면 STM32_USB-FS-Device_Lib_V4.0.0 library를 활용한 STM32F10x Eval 보드와 와 STM32F303-Eval 보드 예제를 STM32F3- discovery 보드에 맞게 USB composite를 변경하는 방법이 설명되어 있다.


실제 STM32F3- discovery 보드는 Flash memory나 SD 카드가 없지만, USB Mass Storage Device(MSD)와 HID를 동시에 이용하는 USB Composite를 테스트할 수 있도록 하는 것이 예제에 나온다.

STM32F3xx는 fsmc를 지원하지 않기 때문에 Composite 예제에서 fsmc관련 파일은 제거를 하고 수행해야된다.

또한 USE_STM32F3_DISCOVERY 와 USE_STM32F3_DISCOVERY define에 반드시 포함 시켜야 된다.

웹사이트에 나온 방법 중 mass_mal.c는 여러개의 함수 중 하나의 예만 나와 있으므로 모든 함수를 다 바꾸어야 한다. 

#ifndef USE_STM32F3_DISCOVERY
#else
  return MAL_OK;
#endif //#ifndef USE_STM32F3_DISCOVERY

와 같이 해 줘서 모두  return MAL_OK; 가 리턴 되도록 한다.

실행이 잘 되면 USB Composite MSC + HID 가 인식이 되어 PC에 드라이버가 설치된다. 설치되는 도중에는 PC에 '이동식 디스크'가 잡힌다. 하지만 드라이버 설치가 완료되면 연결된 Flash 메모리 등이 없기 때문에, PC에서 연결되었던 '이동식 디스크'는 사라지게 된다.

위의 예제는 STM32F3- discovery 보드에서 USB Composite를 잡는 것을 테스트하는 예제로 실제로는 연결된 Flash 메모리 혹은 SD card가 있어야 되며, usb_des.c/h 등도 수정해 주어야 한다.

한참동안 고민했었는데, 링크된 Website의 설명되로 하니까, PC에서 인식되는 것은 실제 STM32F3- discovery 보드에서 확인했다.