CH375做从机和PC通信的问题

下位机是用DSP和CH375,现在是PC可以给下位机发数据,而且下位机也能正确地认识,可是下位机确不能给上位机发数据,不知知道是怎么回事?以下是我上位机VC的一段代码,麻烦哪位大侠帮着看看! if(m_test.GetCheck()) //开始测试,表示已经test已经打上钩了 {

mWriteBuf[0]=TEST_START; mTotal=1; if ( CH375WriteData( 0, &mWriteBuf, &mTotal ) ) // 发送成功 { m_describe.InsertString(-1,_T("Start test now...")); writeflag=1; } else // 写操作失败 { m_describe.InsertString(-1,_T( "S0-T0 CH375WriteData return error" )); writeflag=0; } while(1) //如果下传成功的话,才能上传数据,不然一直等待 { if(writeflag==1) break; } m_describe.InsertString(-1,_T( "kankan" ));

CH375SetBufUpload( 0, 1 ); // 这里调用是为了清空内部上传缓冲区,对于缓冲上传,应该在正式上传数据之前刷新USB接收缓冲区,否则缓冲区中可能会有之前的无效数据 mLength = 4096; if ( CH375ReadData( 0, &mReadBuf, &mLength ) ) // 接收成功,实际是到缓冲区中取数据 { // 对于缓冲上传方式,CH375ReadData总是立即返回,所以要严格检查返回长度是否满足 for(i=0;i<=mLength;i++) { str.Format("%d\r\n",mReadBuf[i]); m_str += str; UpdateData(FALSE); } Sleep(8); //dalay 8ms 这样可以让缓冲区有一定量的数据后,再去读数据 } else//没有接受成功 { m_describe.InsertString(-1,_T( "read fail" )); m_describe.InsertString(-1,_T( "还没有数据上传 " )); Sleep(1); //dalay 1ms } }

按照你说的做法,在单片机将数据写到372之后,372没有接收到中断吗??还有就是你可以这样做个实验,上位机用372DUBUG,下位机用你的程序,你上传下数据,看数据可以不可以上传上来。如果可以的话,那就用你下位机的程序来调试你的上位机的程序,如果不可以的话,那就应该是你的下位机的程序有点问题


下位机接受到中断标志了,为0x000A,也就是显示数据上传成功了,但是上位机的显示的数据长度就是0. 还有在问一下,什么是372DUBUG,是一个调试工具吗


是调试工具,可以用来调试下位机程序.


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