xc2000和sd卡建立ssc通讯(xc2000是主机,sd卡是从机),用Dave生成底层代码,其中指令函数里有一个主发从收的函数和一个从发主收的函数。主发从收函数如下void U1C1_SSC_vSendData(uword uwData){ while(!(U1C1_PSR 0x2000)); // wait un
til tx buffer indication flag is set U1C1_PSCR |= 0x2000; // clear transmit buffer indication flag U1C1_TBUF00 = uwData; // load transmit buffer register}从发主收函数类似,这里写不下了。奇怪的是,如果单独使用一个指令函数,会陷入函数里的while跳不出来。我试了好几种方法,发现主机发送函数后必须写上主机接收函数,而且必须一一对应,比如发送一次接收两次就会陷入接收函数里的while死循环。主函数里有好几条发数的指令,我在每一个主发从收函数后面都写上从发主收函数,在示波表里看发送的数据没错,但最后主机接收到的数据不正常(本应该接收到0x01,但接收到的数据是0xff)。疑问有二1.为什么主发从收函数后面必须写上从发主收函数,出现了什么问题导致这种状况?2.怎么让主机接收到的数据正常?求大神指点,本人菜鸟小白,希望详细点