所谓的双USB CDC-ACM,就是使用USB复合设备,一个USB设备上面有几种功能。最典型的应用的就是4G模块。 GD原生并不支持双USB CDC-ACM,不过他们给了一个复合设备的demo,是hid+打印机的,可以在GD32F4xx\\_Firmware\\_Library\Examples\USB\USB\\_Device\composite\\_dev\\_hid\\_printer找到它。然后网上有人基...
if (uSendSize < CDC_ACM_DATA_PACKET_SIZE){ uTimeout = 0;//设置等待超时,超时则清空FIFO,置...
(2)、打开CDC_ACM.eww工程之后再IAR里面可以看到整个工程的架构、使用到的文件,如图。可以看到移植USB...
if (usb_rx_ch == -1) usb_rx_ch = USBD_CDC_ACM_GetChar(); …… } } 然后看到这个标志一直在,未清除导致。 但很奇怪的事,该代码在ST里面跑的挺好的。不管它,加上处理: void USB_LP_CAN1_RX0_IRQHandler(void) { …… if (istr & ISTR_ESOF) { if (USBD_P_Error_Event) { USBD_P...
【GD32F427开发板试用】二、USB库移植与双USB CDC-ACM功能开发【GD32F427开发板试用】三、USB转CAN功能开发与试用总结 1.环境搭建 首先大概介绍一下这款GD32F427V-START开发板。它长这样 主控芯片GD32F427V,引脚应该是兼容STM32F42X系列的,不过板上这颗GD32F427VKT6的flash空间比较大,达到了3MB,ST的最...
void main(){while(1){……if (usb_rx_ch == -1)usb_rx_ch = USBD_CDC_ACM_GetChar();……}} 然后看到这个标志一直在,未清除导致。 但很奇怪的事,该代码在 ST 里面跑的挺好的。不管它,加上处理: void USB_LP_CAN1_RX0_IRQHandler(void) {……if (istr & ISTR_ESOF){if (USBD_P_Error...
1, usb_tx_string_buf, can1_rxmsg + i);if(get_usb_cur_state() ==0) {dual_cdc_acm_...
usbd_ep_recev()用于配置接收操作,利用CDC_OUT_EP端点,将接收到的数据放置在cdc->data用户缓冲区中。数据发送通过cdc_acm_data_send()函数实现,该函数的程序如下所示。在该函数中,首先将packet_sent标志位设置为,表明接下来将进行发送数据,当数据发送完成时,在cdc_acm_data_in()函数中,将packet_sent...
main .github cores/arduino api gd32 Arduino.h CDCACM.cpp CDCACM.h HardwareRTC.cpp HardwareRTC.h HardwareSerial.cpp HardwareSerial.h HardwareSerial1.cpp HardwareSerial2.cpp HardwareSerial3.cpp HardwareSerial4.cpp HardwareSerial5.cpp HardwareTimer.cpp ...
本例程主函数如下,该函数架构与虚拟键盘例程相似,当USBD设备初始化且枚举完成后,USB设备首先通过cdc_acm_check_ready()函数check是否准备数据发送,如果不需要发送就调用cdc_acm_data_receive()函数接收上位机发送的数据,如果需要发送就调用cdc_acm_data_send()将接收到的数据发送给主机,主机再回显到串口调试助手的接...