使用CDC_Transmit_FS函数发送数据: char str[] = "Hello World!\r\n"; while (1) { CDC_Transmit_FS((uint8_t*)str, strlen(str)); HAL_Delay(2000); } 3.4 接收数据 在usbd_cdc_if.c中,可以实现一个回调函数来处理接收到的数据: static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *...
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...
找到CDC_Receive_FS函数,这个函数如果USB虚拟串口数据收到就会被调用,我们在这个函数中将收到的数据在发回去,只需要添加CDC_Transmit_FS(Buf, *Len);这一句即可,如下图: 然后编译工程并下载,接上USB之后,设备管理器COM出现一个新的端口: 我们使用串口调试助手给它发数据: 6、...
copy接收的数据 CDC_Transmit_FS:直接调用,传入对应数据和大小即可 USART_RXIN_IDLE_Recever:该函数位自定义中断函数,但USART接收到一个字符时,传输完成时,进入该函数 HAL_UART_Transmit:直接调用,传入对应数据和大小即可 这些函数具体代码逻辑和执行过程会再写一篇文章...
#include "usbd_cdc_if.h" // 包含头文件 ... main() { ... CDC_Transmit_FS(&i, 1); //发送1个u8的数据 ... } 1. 2. 3. 4. 5. 6. 7. 8. 可能的故障 未知USB设备,设备描述符请求失败 注意事项1:安装VCP驱动 安装VCP驱动,我用的是Win10操作系统,驱动最高适配到Win8版本,但也支持Win...
intfputc(intch, FILE *f){while(CDC_Transmit_FS((uint8_t*)&ch,1) == USBD_BUSY);returnch; } 总结 STM32MXCube用户提供了一个很方便使用USB(VCP)功能,只需几个操作就可以在工程里面加上VCP的库。通过这个VCP可以完成我们应用的一部分功能。
USBD_LL_OpenEP(pdev, CDC_OUT_EP, USBD_EP_TYPE_BULK,CDC_DATA_FS_OUT_PACKET_SIZE);pdev->...
*f){ while(CDC_Transmit_FS((uint8_t *)&ch, 1) == USBD_BUSY);return ch;} 效果 ...
1、使用CDC_Receive_FS()能够正常接收数据,单独采用CDC_Transmit_FS()定时发送任意长度数据也正常,...
同样,CDC_Transmit_FS函数也相应修改,用于向特定的CDC设备发送数据。通过上述步骤,我们成功地实现了STM32 USB配置5个CDC设备的目标。在后续的使用中,通过合理的接口设计与配置,可以有效提升设备的通信性能和数据处理能力,为用户提供稳定、高效的串行通信解决方案。