Files
player/Project/Src/USB/USB_APP/usbd_usr.c

141 lines
2.8 KiB
C
Raw Normal View History

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
}