CDC_Control_FS()来自主机请求的回调函数 CDC_Receive_FS()接收数据回调函数; CDC_Transmit_FS()用来发送数据; CDC_TransmitCplt_FS()发送完成回调函数; 回环测试 在官方生成的代码中只要添加一行代码就可以进行通讯回环测试了: 上面中在 CDC_Receive_FS 中添加了一行 CDC_Transmit_FS(Buf, *Len); 代码,可以...
USBD_CDC_ItfTypeDefUSBD_Interface_fops_FS={CDC_Init_FS,CDC_DeInit_FS,CDC_Control_FS,CDC_Receive_FS}; 注册到USBD_CDC类:使用USBD_CDC_RegisterInterface()函数将此操作接口注册到USBD_CDC类中 其中hUsbDeviceFS是_USBD_HandleTypeDef即USBD_CDC类对象 USBD_CDC_RegisterInterface(&hUsbDeviceFS,&USBD...
点击其中的Init 这里是关键,主要的功能是把CDC类的功能和我们用户要调用的_fops_FS函数都注册到USB的设备类里,这样在USB内核运行的时候就会调动我们注册进去的函数,点击USBD_Interface_fops_FS进去,这里面的函数指针 指向的函数就是我们需要使用和修改的了 函数在如下文件中: 2)我们修改这个文件: 首先在里面定义个...
CDC_DeInit_FS这个函数取消初始化的,但里面空实现,当然你想往里加写操作也是可以的,我想官方也是这么想的,把实现给到我们开发人员。CDC_Control_FS这个函数是实现CDC相关请求的管理,像上位机下发的串口参数就是通过这个函数接收的,这个函数比较长就不贴图。
CDC_Itf_Control(void)是CDC类的控制处理,保留原状。CDC_Itf_Receive()是接收数据的回调函数,一定要...
这一步很简单的,就是修改usbd_desc.c中的设备描述符数组USBD_FS_DeviceDesc,将设备类型改为组合...
USB复合设备MSC+CDC,CDC_Transmit_FS函数发送不正常是怎么回事? 接收不到数据。(多次尝试打开、关闭串口,打开起始会收到一些数据) 2、在接收中断中,调用CDC_Transmit_FS将收到的数据,发回给上位机正常3、在接收中断中,设置接收数据标志,主循环中发送也正常总结:CDC先收到数据,再发送可以;如果只是CDC_Transmit_FS...
这一步很简单的,就是修改usbd_desc.c中的设备描述符数组USBD_FS_DeviceDesc,将设备类型改为组合设备类型: 第三步:修改PMA端点分布 然后进入usbd_conf.c文件中,找到USBD_LL_Init函数,修改PMA端点初始化: ...
USB复合设备MSC+CDC,CDC_Transmit_FS函数发送不正常的原因? 接收不到数据。(多次尝试打开、关闭串口,打开起始会收到一些数据) 2、在接收中断中,调用CDC_Transmit_FS将收到的数据,发回给上位机正常 3、在接收中断中,设置接收数据标志,主循环中发送也正常 总结:CDC先收到数据 ...
1)首先在drv_usbd.c中实现了USB的中断处理函数USBD_IRQ_HANDLER(OTG_FS_IRQHandler的重定义),里面调用了ST的HAL_PCD_IRQHandler 2)PCD_IRQHandler处理的类型的中断然后调用不同的针对性的函数源。这些函数部分在32f4xxhal_d.中定义线程均__WEAK协议,具体为接口实现内容,需要具体实现。这部分也闯了drv_usbd.c...