STM32 serial communication on ubuntu

임시온·2023년 10월 27일

stm32 serial communication on Ubuntu( 우분투에서 USB 인식하게 만들기 )

사용 보드 : STM32F103C8T6

https://www.devicemart.co.kr/goods/view?no=1329653

STM32CubeIde setting

1. Clock 설정하기


System Core -> RCC -> HSE 와 LSE 를 Crystal/Ceramic Resonator 로 설정해준다.
이유는 보드의 Schematic에서 클럭을 확인을 하면

Crystal로 만드는 것을 확인할 수 있다. (Y1,Y2)
그렇기에 Crystal 로 설정을 해준다.

2. Debug Mode 잡기


Debug 모드를 Serial Wire로 하고 Timebase Source SysTick 으로 설정한다. 이걸 해줘야 볼 수 있는 것 같다.

3. USB 설정


Connectivity -> USB, Device(FS) 를 설정을 하게 되면

Middleware 부분에 USB_DEVICE 라는 것을 활성화 할 수 있는데 이것을

CDC ( Communication Device Class) 로 설정을 해주면 끝이다 ~!

4. Clock 설정

이거 다하면 코드를 만드려고 할 때 경고 같은게 뜨는데 그건 Clock이 안맞아서 뜨는 에러로
Yes 누르고 Reslove Clock Issues 이거 누르면 자동으로 맞춰준다.


code 작성하기

1. 파일 확인


Middlewares -> ST -> STM32_USB_Device_Libary 확인
그리고 여러 usb_device 파일 확인하면 끝

2. 코드 작성

#include "usbd_cdc_if.h"

// main() 안에
uint8_t text[] = "hello world!\n\r";

while (1)
  {
  	  // text 와 text size를 매개변수로 받아서 CDC로 보냄
	  CDC_Transmit_FS(text, sizeof(text));
	  HAL_Delay(500);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */

3. 결과 확인


이게 뜬건데 이거 경로 고대로 포트로 써주면 된다

이 포트대로 접속하게 되면 잘 나오는 것을 확인할 수 있다.
혹시나 Ubuntu 에서 했는데 안되면 컴퓨터를 재시작하거나, USB 포트를 다시 뽑았다 꼽아주는 방법을 해보길 바람

0개의 댓글