看一下这个程序: while(1) { usbserve(); //处理USB事件
if (bEPPflags.bits.configuration == 1) { while(1) { //MCU_D12CS=1; func(); //采样程序 //MCU_D12CS=0; if (bEPPflags.bits.ep2_rxdone == 1) //端点2收到数据 { DISABLE(); bEPPflags.bits.ep2_rxdone = 0; //清空端点2收到数据标志 D12_WriteEndpoint(5,64,p); //发10个字节到PC机批P为数据地址 ENABLE(); } } } } func();是个40路的采样程序,当端点2收到任意的数据时就把采样数据(地址为P)送到主机上,但是现在主程序里没有采样程序func()时USB枚举与数据收发正常,把采样程序放到主程序里时,数据收发就不可以了,枚举正常.一些网友的评论D12的片选一直有效对片外RAM,A/D等没有影响,那么D12不会对采样程序产生影响啊,我试着采样时释放D12,产生中断时片选D12,但是没有用.谁帮忙解决一下啊,捆绕我好几天了,好郁闷啊! |