|
问题是:
代码一定要初始化后延时大约1.5秒后,发送的包才等于接收的包(测试包数很少)
去掉1.5s左右的延时,总是在发送很多包之后(大约1.5s)才收到第一个包。
板子上的网口插入一个Tx接到Rx自制的网线。
使我代码的问题吗,如果不是1.5s初始化是不是时间太长了...
谢谢- unsigned char tx_buf[200];
- unsigned char rx_buf[200];
- unsigned int tx;
- unsigned int rx;
- int main(void)
- {
- int i, j;
- unsigned long ulTemp;
- int Length = 0;
- SysCtlLDOSet(SYSCTL_LDO_2_75V);
- SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
- SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
- SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);
- SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
- GPIOPinConfigure(GPIO_PF2_LED1);
- GPIOPinConfigure(GPIO_PF3_LED0);
- GPIOPinTypeEthernetLED(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3);
- EthernetIntDisable(ETH_BASE, (ETH_INT_PHY | ETH_INT_MDIO | ETH_INT_RXER |
- ETH_INT_RXOF | ETH_INT_TX | ETH_INT_TXER | ETH_INT_RX));
- ulTemp = EthernetIntStatus(ETH_BASE, false);
- EthernetIntClear(ETH_BASE, ulTemp);
- EthernetInitExpClk(ETH_BASE, SysCtlClockGet());
- EthernetConfigSet(ETH_BASE, (ETH_CFG_TX_DPLXEN | ETH_CFG_TX_CRCEN |
- ETH_CFG_TX_PADEN));
-
- EthernetEnable(ETH_BASE);
- //Delay about 1500ms
- DelayMs(1500);
-
- while (1){
- Length = EthernetPacketPutNonBlocking(ETH_BASE, tx_buf, sizeof(tx_buf));
- if(Length > 0) {
- tx++;
- }
- Length = EthernetPacketGetNonBlocking(ETH_BASE, rx_buf, sizeof(rx_buf));
- if(Length > 0) {
- rx++;
- }
- }
- }
复制代码 |
|