单片机/MCU论坛
直播中

laisvl

8年用户 1030经验值
私信 关注

xc2000同步串行口发送和接收数据错误怎么解决?

xc2000和sd卡建立ssc通讯(xc2000是主机,sd卡是从机),用Dave生成底层代码,其中指令函数里有一个主发从收的函数和一个从发主收的函数。主发从收函数如下void U1C1_SSC_vSendData(uword uwData){  while(!(U1C1_PSR   0x2000));   //  wait until 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.怎么让主机接收到的数据正常?求大神指点,本人菜鸟小白,希望详细点                                                                                                                  

回帖(1)

单其莹

2024-2-6 15:34:54
应该是上一次的数据没发出去,下一次的又要发送,在发送后面加一个txbuffferfree试试。     
举报

更多回帖

发帖
×
20
完善资料,
赚取积分