C언어
stm32 HSE 클럭 활성화
바람사탕
2022. 7. 5. 14:08
반응형
stm32CubeMx
클럿설정 페이지에서 아무리 클릭해도 안바뀜.
RCC에서 활성화 시킴.
USB comport 사용하려면
PA1핀 = High 이여야 한다고 하나, 안해도 동작되고 있음.

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);
}

반응형