본문 바로가기
임베디드 개발/STM32 (ARM Cortex-M)

STM32 ] USB CDC (Virtual Port Com) 사용하기

by eteo 2022. 8. 26.

 

 

Clock Configuration

USB 클럭이 PLL에서 나오는 48MHz로 설정되어 있어야 한다.

 

 

 

Activate Clock Source

 

 

 

 

Ethernet Disable

 

 

 

USB_OTG_FS 설정. Device_only 모드로

 

 

 

 

Middleware - USB_DEVICE 에서 Class For FS IP 를 CDC (Communication Device 클래스)로 설정

 

 

Generation Code를 하면 프로젝트 안에 아래와 같이 폴더가 추가된 것을 볼 수 있다.

 

 

그 중에서도 usb 송수신 관련된 함수들은 usbd_cdc_if.c 파일 안에 있다.

 

 

소스코드

 

/* USER CODE BEGIN 0 */
#define BUF_SIZE 30
uint8_t usb_buf[BUF_SIZE];
uint32_t count;
/* USER CODE END 0 */

//...

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  sprintf(usb_buf, "USB CDC TEST %d\r\n", count);
	  CDC_Transmit_FS(usb_buf, BUF_SIZE);
	  HAL_Delay(1000);
	  memset(usb_buf,0,BUF_SIZE);
	  count++;
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

 

 

 

 

보드매뉴을 p.27에 나오는 USB 연결시 주의사항

 

 

ST-Link 파트에도 USB를 꽂고 CN13부분에도 USB를 꽂는다.

 

 

보드에 소스코드를 다운로드하면 바로 COM port가 추가로 잡힌다.

 

 

 

USB FS(Full Speed, 12Mbps)로 통신하는거라 시리얼 터미널에서 따로 baudrate 설정해줄 필요는 없다.