具体实现会根据所选择的STM32型号和使用的开发环境有所不同,我们需要根据具体情况在`usbd_cdc_if.c`文件中实现以下操作: - 实现`USBD_CDC_Receive_HS`函数,用于接收主机发送的数据。 - 实现`CDC_Transmit_FS`函数,用于发送数据给主机。 - 实现`CDC_Receive_FS`函数,用于处理主机发送的控制命令。 此外,还需要...
16 static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) 17 { 18 /* USER CODE BEGIN 6 */ 19 CDC_Transmit_FS(Buf, *Len); 20 21 USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); 22 USBD_CDC_ReceivePacket(&hUsbDeviceFS); 23 return (USBD_OK); 24 /* USER CODE END...
默认的HAL库函数是只针对一路CDC的情况,所以我们需要修改成多路CDC操作函数,将端口参数传递出来,一共有下面几个函数: USBD_CDC_DataOut:USB接收函数回调,修改提供端口参数 CDC_Receive_FS(uint8_t *Buf, uint32_t *Len):USB CDC接收函数 CDC_Transmit_FS(uint8_t* Buf, uint16_t Len):USB CDC发送函数 ...
static int8_t CDC_Receive_HS(uint8_t* Buf, uint32_t *Len) { /* USER CODE BEGIN 11 */ uint16_t len = *Len; // printf("recv len:%d\n", len); // printf("recv:%s\n", Buf); if (!fifo_s_isfull(g_i2s_dma_send_fifo)) { fifo_s_puts(g_i2s_dma_send_fifo, (char*)...
STM32 USB如何配置多个CDC设备---5个CDC设备 1. 背景 由于项需求,在STM32F072中需实现5个CDC设备,折腾了很久分享出来,希望能帮助别人少踩一些坑.USB2.0全速,该款单片机支持8个输出和8个输入端点,过程中参考了些大佬的贴子 STM32两个CDC的配置 STM32 USB知识 感谢大佬门的分享! Casojieblog.casojie.top...
USBD_LL_PrepareReceive(pdev, CDC_OUT_EP, hcdc->RxBuffer,CDC_DATA_HS_OUT_PACKET_SIZE);...
Transmit_HS() 发送数据了, 接受到的数据可以到" usbd_cdc_if.c "里的 CDC_Receive_HS() 函数...
5 #include "u***d_cdc.h" 6 /* USER CODE END Includes */ 最后编译程序,并下载到开发板,电脑u***线接到Open746I-C的核心板的USB接口中。打开串口助手会接到开发板发送的字符串,串口助手发送的字符会在LCD上显示。设置的串口传输格式是无效的,程序中没有设置串口传输格式,可以修改u***d_cdc_if.c...
在usbd_cdc_if.c中添加代码: staticstruct{uint8_tBuffer[CDC_DATA_HS_OUT_PACKET_SIZE];intPosition, Size;charReadDone; } s_RxBuffer;charg_VCPInitialized; 修改自带的CDC_Receive_FS()函数如下: staticint8_tCDC_Receive_FS(uint8_t* Buf,uint32_t*Len){// USBD_CDC_SetRxBuffer(&hUsbDeviceFS,...
首先修改一下CDC所用到的端点地址,CDC的输入输出端点不动,将命令端点成0X83:在改一下MSC的输入输出...