本帖最后由 香水城 于 2012-3-2 17:00 编辑
芯片是stm32f103c8,用了好几个版本的demo,都存在这样的问题,描述如下:
Demo中用的是com1,我改为com2,其它都没动。com2接一modem,只接rx,tx。
情况一、通过modem传数据,50K左右,上位机通过at命令控制modem接收数据,接收完成就关闭vcp,过一两秒再打开继续上述过程,工作长则三小时,短则几十分钟后,上位机就不能打开VCP,提示“连到系统上的设备没有发挥作用”。
情况二、不运行上位机,不停拨号到modem,相当于modem不停送RING给芯片的usart2口,几分钟到几十分钟后,再打开上位机,也提示“连到系统上的设备没有发挥作用”。
根据一个多星期的查找,发现出现这个问题是由于 USB_LP_CAN1_RX0_IRQHandler这个中断处理过程不再被调用,而同时的USART2_IRQHandler中断处理一直在正常运行。
本想补救一下,在主循环中加了检测,只要USB_LP_CAN1_RX0_IRQHandler不被调用超过3ms,就在主循环中直接调用usb_istr(),并没有用。
请问版主,这个情况如何处理?
----补充-----
在出现“连到系统上的设备没有发挥作用”后,PC的设备管理器中“禁用”再“启用”相应的虚拟串口后,上位机又能正常打开VCP。
|