初始化磁盘函数如下,printf函数用于测试程序运行到哪里。有的时候只能运行到printf("wwww");也就是说发送了CMD_DISK_INIT命令之后单片机在一直等待CH375的中断,整个程序运行到这里就停止了。不知道为什么? 大部分时候运行是正常的,当出现不正常的时候只能重新关闭再打开电源这样的方式去尝试。
UINT8 mInitDisk(void) { UINT8 Status; CH375_WR_CMD_PORT(CMD_GET_STATUS); Status=CH375_RD_DAT_PORT(); printf("gggg"); if(Status==USB_INT_DISCONNECT)return(Status); CH375_WR_CMD_PORT(CMD_DISK_INIT);printf("wwww"); Status=mWaitInterrupt(); printf("tttt"); if(Status!=USB_INT_SUCCESS)return(Status); CH375_WR_CMD_PORT(CMD_DISK_SIZE);printf("yyyy"); Status=mWaitInterrupt();printf("hhhh");SBUF=Status;while(TI==0);TI=0;mDelaymS(250); if(Status!=USB_INT_SUCCESS) { mDelaymS(250); CH375_WR_CMD_PORT(CMD_DISK_SIZE); Status=mWaitInterrupt(); } if(Status==USB_INT_SUCCESS)return(Status); return(0); }