BF607 SPORT0_A同时接收两路信号问题

你好,

我们在使用BF607的SPORT接口的时候遇到了问题。

SPORT_0_A有两根数据线,data0和data1,他们会接收到完全相同的信号。

接收前,会先判断DXSPRI标志位是否为空。当单独接收其中一路的时候,没有问题。

但是如果两路同时接收,第一路正确,第二路就会收不到或者收错。觉得可能是判断标志位时出错,但是却无法改好。

代码如下:

static void SPORT_RX_double(void *hSPORT,unsigned int* pval)
{
sport_rx_desc *p = (sport_rx_desc*)hSPORT;

unsigned int m;

do
{
m = p->pSportRegs->SPORT_CTL;
}while((m & BITM_SPORT_CTL_DXSPRI) == ENUM_SPORT_CTL_PRM_EMPTY);

pval++ = p->pSportRegs->SPORT_RXA;

do
{
m = p->pSportRegs->SPORT_CTL;
}while((m & BITM_SPORT_CTL_DXSSEC) == ENUM_SPORT_CTL_SEC_EMPTY);


pval++= p->pSportRegs->SPORT_RXB;

}

希望能指导一下,谢谢!