티스토리 뷰
반응형
stm32CubeMx
클럿설정 페이지에서 아무리 클릭해도 안바뀜.
RCC에서 활성화 시킴.
USB comport 사용하려면
PA1핀 = High 이여야 한다고 하나, 안해도 동작되고 있음.
![](https://blog.kakaocdn.net/dn/l7SX2/btrGt3ciUrK/GRTmR2sZBhNGsLl4Fukp1K/img.png)
usbd_cdc_if.c
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
/* USER CODE BEGIN 6 */
//여기서 받아서 처리 하면 될듯..
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
return (USBD_OK);
/* USER CODE END 6 */
}
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
{
uint8_t result = USBD_OK;
/* USER CODE BEGIN 7 */
USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData;
if (hcdc->TxState != 0){
return USBD_BUSY;
}
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, Buf, Len);
result = USBD_CDC_TransmitPacket(&hUsbDeviceFS);
/* USER CODE END 7 */
return result;
}
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len);
void USB_puts_no_rn(char *s)
{
CDC_Transmit_FS((uint8_t*)s,strlen(s));
}
void USB_puts(char *s)
{
USB_puts_no_rn(s);
USB_puts_no_rn("\r\n");
}
void USB_puts_str(char *s,char *a)
{
char buf[128];
strcpy(buf,s);
strcat(buf,"=");
strcat(buf,a);
strcat(buf,"\r\n");
USB_puts_no_rn(buf);
}
void USB_puts_int(char *s,int a)
{
char buf[128],*p;
strcpy(buf,s);
strcat(buf,"=");
p=buf+strlen(buf);
itoa(a,p,10);
strcat(p,"\r\n");
USB_puts_no_rn(buf);
}
void USB_puts_float1(char *s,float a)
{
char buf[128];
sprintf(buf,"%s=%0.1f\r\n",s,a);
USB_puts_no_rn(buf);
}
void USB_puts_float2(char *s,float a)
{
char buf[128];
sprintf(buf,"%s=%0.2f\r\n",s,a);
USB_puts_no_rn(buf);
}
void USB_puts_float3(char *s,float a)
{
char buf[128];
sprintf(buf,"%s=%0.3f\r\n",s,a);
USB_puts_no_rn(buf);
}
![](https://blog.kakaocdn.net/dn/b9698x/btrGHlPbJTK/FQxsMZBpWC24q2nquGlAK0/img.jpg)
반응형
'C언어' 카테고리의 다른 글
STM32 NUCLEO 보드로 펌웨어 쉽게 다운로드 하는 방법 (0) | 2022.08.12 |
---|---|
i2c 장치를 찾아보자 (0) | 2022.07.08 |
stm32 tick count 1msec 수정 포인트 (0) | 2022.06.15 |
HEX 문자열을 바이너리로 변환하는 샘플코드입니다. (0) | 2022.04.30 |
UART 데이터 수신처리 예제 코드입니다. (0) | 2022.04.30 |