STM32F103 使用 USB port 筆記!!

用CubeMX設定 USB 虛擬port

要在 usbd_cdc_if.c 找到 CDC_Receive_FS
加入 三個 欄位
{

  USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
  USBD_CDC_ReceivePacket(&hUsbDeviceFS);

    received_data_size = *Len;
    memcpy(received_data, Buf, received_data_size);
    receive_total += received_data_size;
  
  return (USBD_OK);
  /* USER CODE END 6 */
}

然後再 找
#define APP_RX_DATA_SIZE  64
#define APP_TX_DATA_SIZE  64

    uint8_t received_data[64];
    uint32_t received_data_size;
    uint32_t receive_total = 0;
加入上面三個


在 usbd_cdc_if.h定義 那三個欄位

extern uint8_t received_data[];
extern uint32_t received_data_size;
extern uint32_t receive_total;


最後 在main.c
 加入 #include "usbd_cdc_if.h"


 找 while(1)加入

 while (1)
  {
            if(received_data_size >0){
                    if (received_data[0] == '1'){
                            HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);
                            CDC_Transmit_FS((uint8_t*)"LED PB_8.super hard!!\r\n",30);
                    }
                    received_data[0] = 0;
                }
}













留言