임베디드/펌웨어 기초

USB CDC

twoweeks-within 2025. 1. 4. 11:57

1. USB 핀셋팅

2.middle ware > USB_DEVICE >  CDC > 버퍼사이즈 조정 

3. 클럭설정 > 48MHZ 필요, : CPU 클럭 72 로 다시 바꿔줘야함 or 1.5 prescaler 

 

4. inc , app 파일 include 경로설정

5. 재복사 > hal_cof, it.c, clock(main.c > systemClock)

 

statup_handler 문제

ex) 

sysTick_Handler 같은건 .word SysTick_Handler 

                                      >> startup코드에 구현되어있음

 

6. main 에서 초기화, 헤더파일 가져옴7. 메모리 문제.. 47%나 잡아먹음8. 세팅 > optimize for size     > 20% 로 줄어들음  > 디버깅 과정속 미구현 변수들 사라질수 있음      // ex) 고추건조기 float temper 처럼      > 디버깅때는 optimize zero

 

 

GPIO_InitTypeDef GPIO_InitStruct = {0};

 

GPIO_InitStruct.Pin = GPIO_PIN_12;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; // 오픈 드레인 출력 모드

GPIO_InitStruct.Pull = GPIO_PULLUP;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

 

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET);

delay(100);

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET);

 

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

 

USB핀 하나를 껏다 켜서 장치 리셋시킴

 

extern CDC_Transmit_FS(uint8_t* Buf, uint16_t Len);

CDC_Transmit_FS("test\n", 6);

테스트용 CDC 를 이용한통신

'임베디드 > 펌웨어 기초' 카테고리의 다른 글

cdc 2  (0) 2025.01.05
stm32 mx >LED  (1) 2025.01.03
초기설정  (0) 2025.01.02