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;
}
}
要在 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;
}
}
留言
張貼留言