用VCP官方库,修改VCP_DataTx函数如下: static uint16_t VCP_DataTx(unit8_t* Buf, uint32_t Len) { u8 i; if(linecoding.datatype == 7) {} else if (linecoding.datatype == 8) { for(i=0;Soft_VER!=0;i++) { APP_Rx_Buffer[APP_Rx_ptr_in]=Soft_VER; APP_Rx_ptr_in++; if(APP_Rx_ptr_in == APP_RX_DATA_SIZE) {APP_Rx_ptr_in = 0;} } } } 字符串Soft_VER里面有30个数据; 发现底层在往上位机发送数据时,上位机会概率性收不到,只要发生收不到的情况,之后发送的数据上位机全部都收不到; 通过调试对比发现: 上位机能收到数据时,每次发送数据,底层会进两次DCD_HandleInEP_ISR中断,第一次是进入(diepint.b.emptyintr),第二次进入(diepint.b.xfercoml); 上位机收不到数据时,只进入一次这个中断(diepint.b.emptyintr) 想请问是什么原因,万分感谢!!!!stm |
评分
查看全部评分