2025-06-27 00:32:57 +08:00
|
|
|
|
#include "usbd_usr.h"
|
|
|
|
|
|
#include "usb_dcd_int.h"
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
#include "usbd_desc.h"
|
|
|
|
|
|
#include "usbd_cdc_core.h"
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѧϰʹ<CFB0>ã<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>;
|
|
|
|
|
|
//ALIENTEK STM32<33><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//USBD-USR <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>@ALIENTEK
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:2016/1/21
|
|
|
|
|
|
//<2F>汾<EFBFBD><E6B1BE>V1.0
|
|
|
|
|
|
//<2F><>Ȩ<EFBFBD><C8A8><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
|
|
|
|
|
|
//Copyright(C) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿƼ<D3BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾ 2009-2019
|
2025-06-27 00:32:57 +08:00
|
|
|
|
//All rights reserved
|
|
|
|
|
|
//*******************************************************************************
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//<2F><EFBFBD><DEB8><EFBFBD>Ϣ
|
|
|
|
|
|
//<2F><>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//<2F><>ʾUSB<53><42><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
//0,û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|
|
|
|
|
//1,<2C>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>;
|
|
|
|
|
|
static vu8 bDeviceState=0; //Ĭ<><C4AC>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
__ALIGN_BEGIN static USB_OTG_CORE_HANDLE USB_OTG_dev={0} __ALIGN_END;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//USB OTG <20>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>USB<53>ж<EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
void OTG_FS_IRQHandler(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
USBD_OTG_ISR_Handler(&USB_OTG_dev);
|
|
|
|
|
|
}
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//ָ<><D6B8>DEVICE_PROP<4F>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
//USB Device <20>û<EFBFBD><C3BB>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>.
|
2025-06-27 00:32:57 +08:00
|
|
|
|
static USBD_Usr_cb_TypeDef USR_cb =
|
|
|
|
|
|
{
|
|
|
|
|
|
USBD_USR_Init,
|
|
|
|
|
|
USBD_USR_DeviceReset,
|
|
|
|
|
|
USBD_USR_DeviceConfigured,
|
|
|
|
|
|
USBD_USR_DeviceSuspended,
|
|
|
|
|
|
USBD_USR_DeviceResumed,
|
|
|
|
|
|
USBD_USR_DeviceConnected,
|
|
|
|
|
|
USBD_USR_DeviceDisconnected,
|
|
|
|
|
|
};
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//USB Device <20>û<EFBFBD><C3BB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
void USBD_USR_Init(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
//printf("USBD_USR_Init\r\n");
|
|
|
|
|
|
}
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//USB Device <20><>λ
|
|
|
|
|
|
//speed:USB<53>ٶ<EFBFBD>,0,<2C><><EFBFBD><EFBFBD>;1,ȫ<><C8AB>;<3B><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>.
|
2025-06-27 00:32:57 +08:00
|
|
|
|
void USBD_USR_DeviceReset (uint8_t speed)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (speed)
|
|
|
|
|
|
{
|
|
|
|
|
|
case USB_OTG_SPEED_HIGH:
|
|
|
|
|
|
// printf("USB Device Library v1.1.0 [HS]\r\n");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case USB_OTG_SPEED_FULL:
|
|
|
|
|
|
// printf("USB Device Library v1.1.0 [FS]\r\n");
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
// printf("USB Device Library v1.1.0 [??]\r\n");
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//USB Device <20><><EFBFBD>óɹ<C3B3>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
void USBD_USR_DeviceConfigured (void)
|
|
|
|
|
|
{
|
|
|
|
|
|
bDeviceState=1;
|
|
|
|
|
|
// printf("MSC Interface started.\r\n");
|
|
|
|
|
|
}
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//USB Device<63><65><EFBFBD><EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
void USBD_USR_DeviceSuspended(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
bDeviceState=0;
|
|
|
|
|
|
// printf("Device In suspend mode.\r\n");
|
|
|
|
|
|
}
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//USB Device<63>ָ<EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
void USBD_USR_DeviceResumed(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
// printf("Device Resumed\r\n");
|
|
|
|
|
|
}
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//USB Device<63><65><EFBFBD>ӳɹ<D3B3>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
void USBD_USR_DeviceConnected (void)
|
|
|
|
|
|
{
|
|
|
|
|
|
bDeviceState=1;
|
|
|
|
|
|
// printf("USB Device Connected.\r\n");
|
|
|
|
|
|
}
|
2025-07-05 19:47:28 +08:00
|
|
|
|
//USB Deviceδ<65><CEB4><EFBFBD><EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
void USBD_USR_DeviceDisconnected (void)
|
|
|
|
|
|
{
|
|
|
|
|
|
bDeviceState=0;
|
|
|
|
|
|
// printf("USB Device Disconnected.\r\n");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void USBD_InitAsVcp (void)
|
|
|
|
|
|
{
|
|
|
|
|
|
USBD_Init(&USB_OTG_dev,USB_OTG_HS_CORE_ID,&USR_desc,&USBD_CDC_cb,&USR_cb);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void USBD_OTG_ISR_USER (void)
|
|
|
|
|
|
{
|
|
|
|
|
|
USBD_OTG_ISR_Handler (&USB_OTG_dev);
|
|
|
|
|
|
//u32 st=USB_OTG_READ_REG32(&(&USB_OTG_dev)->regs.GREGS->GINTSTS );
|
|
|
|
|
|
u32 st=*(u32 *)0x4004001c;
|
|
|
|
|
|
//st=*(u32 *)0x40040020;
|
|
|
|
|
|
if (st==0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void OTG_HS_EP1_IN_ISR_USER (void)
|
|
|
|
|
|
{
|
|
|
|
|
|
#ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED
|
|
|
|
|
|
USBD_OTG_EP1IN_ISR_Handler (&USB_OTG_dev);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void OTG_HS_EP1_OUT_ISR_USER (void)
|
|
|
|
|
|
{
|
|
|
|
|
|
#ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED
|
|
|
|
|
|
USBD_OTG_EP1OUT_ISR_Handler (&USB_OTG_dev);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|