mirror of
https://github.com/Fishwaldo/bl_mcu_sdk.git
synced 2025-07-23 21:29:17 +00:00
[fix] fix adc/usb/spi/i2s demo
This commit is contained in:
parent
d98495bbb4
commit
ca849b3ed8
24 changed files with 673 additions and 116 deletions
|
@ -28,7 +28,6 @@ static const char *parity_name[] = {"N","O","E","M","S"};
|
|||
|
||||
/* Device data structure */
|
||||
struct cdc_acm_cfg_private {
|
||||
// /* Interface data buffer */
|
||||
/* CDC ACM line coding properties. LE order */
|
||||
struct cdc_line_coding line_coding;
|
||||
/* CDC ACM line state bitmap, DTE side */
|
||||
|
@ -50,6 +49,7 @@ static void usbd_cdc_acm_reset(void)
|
|||
usbd_cdc_acm_cfg.line_coding.bDataBits = 8;
|
||||
usbd_cdc_acm_cfg.line_coding.bParityType = 0;
|
||||
usbd_cdc_acm_cfg.line_coding.bCharFormat = 0;
|
||||
usbd_cdc_acm_cfg.configured = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,7 +61,7 @@ static void usbd_cdc_acm_reset(void)
|
|||
*
|
||||
* @return 0 on success, negative errno code on fail.
|
||||
*/
|
||||
int cdc_acm_class_request_handler(struct usb_setup_packet *pSetup,uint8_t **data,uint32_t *len)
|
||||
static int cdc_acm_class_request_handler(struct usb_setup_packet *pSetup,uint8_t **data,uint32_t *len)
|
||||
{
|
||||
switch (pSetup->bRequest)
|
||||
{
|
||||
|
@ -123,14 +123,13 @@ int cdc_acm_class_request_handler(struct usb_setup_packet *pSetup,uint8_t **data
|
|||
return 0;
|
||||
}
|
||||
|
||||
void cdc_notify_handler(uint8_t event, void* arg)
|
||||
static void cdc_notify_handler(uint8_t event, void* arg)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case USB_EVENT_RESET:
|
||||
usbd_cdc_acm_reset();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -166,24 +165,3 @@ void usbd_cdc_add_acm_interface(usbd_class_t *class, usbd_interface_t *intf)
|
|||
usbd_class_add_interface(class,intf);
|
||||
}
|
||||
|
||||
void usbd_cdc_add_custom_interface(usbd_class_t *class, usbd_interface_t *intf)
|
||||
{
|
||||
static usbd_class_t *last_class = NULL;
|
||||
|
||||
if(last_class != class)
|
||||
{
|
||||
last_class = class;
|
||||
usbd_class_register(class);
|
||||
}
|
||||
|
||||
intf->class_handler = cdc_acm_class_request_handler;
|
||||
intf->custom_handler = NULL;
|
||||
intf->vendor_handler = NULL;
|
||||
intf->notify_handler = cdc_notify_handler;
|
||||
usbd_class_add_interface(class,intf);
|
||||
}
|
||||
|
||||
void usbd_cdc_add_endpoint(usbd_interface_t *intf, usbd_endpoint_t *ep)
|
||||
{
|
||||
usbd_interface_add_endpoint(intf,ep);
|
||||
}
|
||||
|
|
|
@ -369,8 +369,6 @@ struct cdc_ecm_descriptor {
|
|||
0x01 /* bInterval */
|
||||
|
||||
void usbd_cdc_add_acm_interface(usbd_class_t *class, usbd_interface_t *intf);
|
||||
void usbd_cdc_add_custom_interface(usbd_class_t *class, usbd_interface_t *intf);
|
||||
void usbd_cdc_add_endpoint(usbd_interface_t *intf, usbd_endpoint_t *ep);
|
||||
|
||||
void usbd_cdc_acm_set_line_coding(uint32_t baudrate, uint8_t databits, uint8_t parity, uint8_t stopbits);
|
||||
void usbd_cdc_acm_set_dtr(bool dtr);
|
||||
|
|
|
@ -78,6 +78,7 @@ static struct usbd_core_cfg_priv
|
|||
static usb_slist_t usbd_class_head= USB_SLIST_OBJECT_INIT(usbd_class_head);
|
||||
static struct usb_msosv1_descriptor *msosv1_desc;
|
||||
static struct usb_bos_descriptor *bos_desc;
|
||||
static volatile uint32_t sof_tick = 0;
|
||||
/**
|
||||
* @brief print the contents of a setup packet
|
||||
*
|
||||
|
@ -840,6 +841,7 @@ static int usbd_vendor_request_handler(struct usb_setup_packet *setup, uint8_t *
|
|||
}
|
||||
|
||||
usb_slist_t *i, *j;
|
||||
|
||||
usb_slist_for_each(i,&usbd_class_head)
|
||||
{
|
||||
usbd_class_t* class= usb_slist_entry(i,struct usbd_class,list);
|
||||
|
@ -847,8 +849,10 @@ static int usbd_vendor_request_handler(struct usb_setup_packet *setup, uint8_t *
|
|||
usb_slist_for_each(j,&class->intf_list)
|
||||
{
|
||||
usbd_interface_t* intf = usb_slist_entry(j,struct usbd_interface,list);
|
||||
if(intf->vendor_handler && ((intf->intf_num == (setup->wValue & 0xFF)) || (intf->intf_num == (setup->wIndex & 0xFF))))
|
||||
return intf->vendor_handler(setup, data, len);
|
||||
if(intf->vendor_handler && !intf->vendor_handler(setup, data, len))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1162,12 +1166,16 @@ void usbd_event_notify_handler(uint8_t event, void* arg)
|
|||
{
|
||||
switch (event)
|
||||
{
|
||||
case USB_EVENT_SOF:
|
||||
sof_tick++;
|
||||
USBD_LOG_DBG("tick: %d\r\n", sof_tick);
|
||||
break;
|
||||
case USB_EVENT_RESET:
|
||||
usbd_set_address(0);
|
||||
#if USBD_EP_CALLBACK_SEARCH_METHOD == 1
|
||||
usbd_ep_callback_register();
|
||||
#endif
|
||||
case USB_EVENT_ERROR:
|
||||
case USB_EVENT_SOF:
|
||||
case USB_EVENT_CONNECTED:
|
||||
case USB_EVENT_CONFIGURED:
|
||||
case USB_EVENT_SUSPEND:
|
||||
|
@ -1230,3 +1238,13 @@ void usbd_interface_add_endpoint(usbd_interface_t *intf,usbd_endpoint_t *ep)
|
|||
{
|
||||
usb_slist_add_tail(&intf->ep_list,&ep->list);
|
||||
}
|
||||
|
||||
bool usb_device_is_configured(void)
|
||||
{
|
||||
return usbd_core_cfg.configured;
|
||||
}
|
||||
|
||||
uint32_t usbd_get_sof_tick(void)
|
||||
{
|
||||
return sof_tick;
|
||||
}
|
|
@ -130,6 +130,8 @@ void usbd_class_register(usbd_class_t *class);
|
|||
void usbd_msosv1_desc_register(struct usb_msosv1_descriptor *desc);
|
||||
void usbd_class_add_interface(usbd_class_t *class,usbd_interface_t *intf);
|
||||
void usbd_interface_add_endpoint(usbd_interface_t *intf,usbd_endpoint_t *ep);
|
||||
bool usb_device_is_configured(void);
|
||||
uint32_t usbd_get_sof_tick(void);
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue