

USB 신호가 정상 동작하는지 확인하기 위해 USB설정 및 CDC를 추가했다.
단순하게 초기화만 하면 자동으로 아래 함수가 호출되어 PC에서 인식할 수 있게 된다.
void MX_USB_DEVICE_Init(void)
{
/* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */
/* USER CODE END USB_DEVICE_Init_PreTreatment */
/* Init Device Library, add supported class and start the library. */
if (USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK)
{
Error_Handler();
}
if (USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK)
{
Error_Handler();
}
if (USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK)
{
Error_Handler();
}
if (USBD_Start(&hUsbDeviceFS) != USBD_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */
/* USER CODE END USB_DEVICE_Init_PostTreatment */
}
usbd_cdc_if 를 보면 바로 사용할 수 있는 함수가 있다. 이걸 사용해서 간단하게 테스트
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len);
#define BUF_SIZE 30
uint8_t usb_buf[BUF_SIZE];
uint32_t count;
void apMain(void)
{
while(1)
{
// cliMain();
int len;
len = sprintf(usb_buf, "USB CDC TEST %d\\r\\n", count);
CDC_Transmit_FS((uint8_t*)usb_buf, len);
HAL_Delay(1000);
count++;
}
}
