下面给出的是我的代码。
Usbread.c
<
#include "Usbread.h"
#include "usbd_cdc_if.h"
uint8_t buffer1 [20];;
uint8_t buffer_index1;
uint8_t REDLED[15] = “LED 红灯亮起”;
uint8_t REDLEDF[15]=“LED 红色关闭”;
uint8_t GREENLED[15]=“LED 绿色亮起”;
uint8_t GREENLEDF[15]=“LED 绿色关闭”;
void USB_read1(uint8_t *buff)
{
buffer1[buffer_index1]= *buff;
如果 (memcmp(buffer1,REDLED,10)==0)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
}
否则如果 (memcmp(buffer1,REDLEDF,11)==0)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET);
}
否则如果 (memcmp(buffer1,GREENLED,12)==0)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
}
否则如果 (memcmp(buffer1,GREENLEDF,13)==0)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);
}
buffer_index1 ++;
}
>
面包.h
<
#include "main.h"
#include "usb_device.h"
#include "usbd_cdc_if.h"
#include "
STM32f2xx_hal.h"
extern void USB_read1(uint8_t *buff);
>
usbd_cdc_if.c
<
sta
tic int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
/* 用户代码开始 6 */
USB_read1(Buf);
// CDC_Transmit_FS(Buf,sizeof(Buf));
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
返回(USBD_OK);
/* 用户代码结束 6 */
}
>