Dear Expert
The MCU I am using is MK64FX512XXX12,
when we use this function ,send eth data for a while, it will stucked in " while(ENET->EIR & ENET_EIMR_TXF_MASK); ".
无效ENET_MacSendData(uint8_t*数据,uint16_t镜头)
{
ENET->EIR = ENET_EIMR_TXF_MASK;
/* check if buffer is readly */
//while( pxENETTxDescriptor->status & TX_BD_R ) {};
/* set Tx Descriptor */
pxENETTxDescriptor->data = (uint8_t *)__REV((uint32_t)data);
pxENETTxDescriptor->length = __REVSH(len);
pxENETTxDescriptor->bdu = 0x00000000;
pxENETTxDescriptor->ebd_status = TX_BD_INT | TX_BD_TS;// | TX_BD_IINS | TX_BD_PINS;
pxENETTxDescriptor->status = ( TX_BD_R | TX_BD_L | TX_BD_TC | TX_BD_W );
/* enable transmit */
ENET->TDAR = ENET_TDAR_TDAR_MASK;
while(ENET->EIR & ENET_EIMR_TXF_MASK); // why stuck in this "while" ?
}
we have no idea why? isn't this bit set or reset by hardware?
This problem has been bothering me for a long time, please help me to solve this problem.
Thanks.
--weilu.