你们的库CH375HF9.LIB采用查询操作是正确的,采用中断操作确实有问题.

我测试了一天,如果直接DISK_READY命令也没有问题,采用你们的库函数确实过不去,麻烦你们检查一下,我们急用

你认为中断和查询有什么区别吗?如果查询没问题,那么中断也应该没有问题,除非你的中断设置有问题


我估计是你们在使用中断过程中又用查询的函数,造成这个CH375IntStatus值读重复,我保证我的中断没有问题,而且都能正常中断 void __irq CH375Interrupt( void )/* 由CH375的INT#的低电平或者下降沿触发单片机中断 */ { rI_ISPC |= BIT_EINT0; /* 清中断 */ rINTMSK = rINTMSK | BIT_EINT0; xWriteCH375Cmd( CMD_GET_STATUS ); CH375IntStatus = xReadCH375Data( ); /* 获取中断状态 */ if ( CH375IntStatus == USB_INT_DISCONNECT ) CH375DiskStatus = DISK_DISCONNECT; else if ( CH375IntStatus == USB_INT_CONNECT )CH375DiskStatus = DISK_CONNECT;

rINTMSK = rINTMSK & (~BIT_EINT0); }


库里调用的是xQueryInterrupt()这个函数,中断只是将CH375的中断状态读出来.


void xQueryInterrupt( void ) /* 查询中断状态,等待硬件中断 */ { while(CH375DiskStatus == DISK_CONNECT); } 如果加WHILE会死在这儿,如果不加的话返回的状态不对


只有登录才能回复,可以选择微信账号登录