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 설정해줄 필요는 없다.
'임베디드 개발 > STM32 (ARM Cortex-M)' 카테고리의 다른 글
STM32 ] 델타로봇, UART로 Command Line Interface 구현 + 기판에 다시 납땜 (5) (0) | 2022.09.04 |
---|---|
STM32 ] 델타로봇과 MFC 연동 + 컨베이어 벨트 추가 (4) (0) | 2022.08.28 |
STM32 ] 역기구학(Inverse kinematics)을 통한 델타로봇 제어 (3) (0) | 2022.08.22 |
STM32 ] UART DMA, IDLE Line Interrupt 를 통한 데이터 수신 (Ring Buffer) (0) | 2022.08.18 |
STM32 ] Dynamixel AX-12 사용 - 델타로봇 제어하기 (2) (0) | 2022.08.11 |