ch376 ep1(端点1)上传中断端点。 当我向端点1上传数据时,总是会进入中断。这正常吗? 而上位机读取ep1的数据后,也会进入中断。 我的问题是,上传数据和读取数据,ep1都会产生中断吗? 如果都会产生中断,那我如何解决向ep1上传数据时不产生中断呢?
你是说PC端的中断服务程序?
向端点1上传数据时,不可能产生中断。 而上位机读取ep1的数据后,会产生中断。向端点1上传数据时,如果会产生中断,检查你中断处理那块,是不是哪些标志没有清
我也感觉奇怪。需要清除那些标志呢。 我是用fpgA来控制ch376的。 当向ep2上传数据时不会产生中断,而向ep1发送时,发送完成后,上位机没有接收,就进入了中断号9。
应该不会这样的。你这样:端点1不要发CMD_UNLOCK_USB,然后你往端点1写数据,看会不会产生中断。或者说你程序中是不是往端点1写完数据就发送CMD_UNLOCK_USB命令 ?
这个命令我是在进入中断后处理的。 中断处理程序是这样的,先读取中断状态码,然后根据中断码执行操作,执行CMD_UNLOCK_USB 命令释放USB缓冲区。
我的问题依然存在。我的处理方式是这样的。 程序第一次运行正常,一旦上位机读取ep1的数据成功后,便进入中断,执行CMD_UNLOCK_USB命令。 接着,如果下位机继续往ep1写数据,执行完写数据后,便进入了中断号9。而且执行写时序后,进入中断,端点缓冲区都变成无效的。必须UNLOCK_USB后,才可以继续读写缓冲区。
在初始化CH376之后,第一次上传数据的时候是不需要解锁缓冲区的。当第一次写数据计算机取走后,会产生EP1上传成功中断。此时解锁USB缓冲区。之后可以往此端点缓冲区写数据。简单理解就是每次传输完成之后到下次需要传输数据之间必须要解锁USB缓冲区