这里端点使用BULK传输,最大包长默认设置为64字节】,USB模块会做分包传输,将一批数据传输分成多个处理[...
HAL_PCD_EP_Transmit调用stm32f4_ii_usb.c中的USB_EPStartXfer(); USB_EPStartXfer设置了发送数据大小,并使能IN端点; 要发送的数据时怎么让USB外设知道的: CDC_Transmit_HS调用usbd_cdc.c中的USBD_CDC_SetTxBuffer USBD_CDC_SetTxBuffer中设置hcdc->TxBuffer,hcdc->TxLength HAL_PCD_EP_Transmit中设置ep...
USB_ENDPOINT_TYPE_BULK,/*bmAttributes*/\ WBVAL(VIRTUAL_COM_PORT_DATA_SIZE),/*wMaxPacketSize*/\0x00/*bInterval*/#defineIAD_CDC_IF_DESC_SET_SIZE ( 8 + CDC_IF_DESC_SET_SIZE )#defineIAD_CDC_IF_DESC_SET( comIfNum, datIfNum, comInEp, datOutEp, datInEp ) \/*Interface Association D...
send_len = copy_data_to_usbh(CDC_Handle->pTxData, CDC_Handle->DataItf.OutEpSize); } if(send_len > 0) { USBH_BulkSendData(phost,CDC_Handle->pTxData, send_len, CDC_Handle->DataItf.OutPipe, 1U); CDC_Handle->data_tx_state = CDC_SEND_DATA_WAIT; } break; case CDC_SEND_DATA_W...
STM32USB学习整理1首先看初始化函数吧 USBD_Init(&USB_OTG_dev,USB_OTG_FS_CORE_ID,&USR_desc,&USBD_CDC_cb,&USR_cb);void USBD_Init(USB_OTG_CORE_HANDLE *pdev,USB_OTG_CORE_ID_TypeDef coreI 数据 上拉 DM 转载 mob64ca141a683a
USB_DESC_TYPE_ENDPOINT, /* bDescriptorType: Endpoint */ EP2_IN_EP, /* bEndpointAddress */ 0x02, /* bmAttributes: Bulk */ LOBYTE(CDC_DATA_FS_MAX_PACKET_SIZE), /* wMaxPacketSize: */ HIBYTE(CDC_DATA_FS_MAX_PACKET_SIZE), 0x00 /* bInterval: ignore for Bulk transfer */ ...
USB_DESC_TYPE_ENDPOINT, /* bDescriptorType: Endpoint */ CDC_OUT_EP1, /* bEndpointAddress */ 0x02, /* bmAttributes: Bulk */ LOBYTE(CDC_DATA_FS_MAX_PACKET_SIZE), /* wMaxPacketSize: */ HIBYTE(CDC_DATA_FS_MAX_PACKET_SIZE), 0x00, /* bInterval: ignore for Bulk transfer */ /*...
可考虑到STM32的USB在发送大于最大包长(full speed情况下为64字节)小于缓冲区容量的情况下应该会自动...
8.6 USB传输速度 8.7 USB通信(重要) 8.8 USB描述符 8.9 USB类 8.10 总结 8.1 初学者重要提示 USB1.1和USB2.0规格书以及Cypress做的中文版USB文档,非常推荐大家学习: http://www.armbbs.cn/forum.php?mod=viewthread&tid=100698 USB初学 -- 入门篇 (USB基础知识速览) ...
一、usb_desc.c文件 根据你程序使用的通信方式修改。usb_desc.h文件中定义要根据usb_desc.c文件中的数组的大小;ConfigDescriptor[SIZ_CONFIG_DESC]下添加需要处理的端点;根据需要添加或删除报告描述符(主要用于HID)和CDC接口描述符(主要用于实现USB转串口)等。具体方法可以下载个“电脑圈圈”使用D12编写的例子。