RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); GPIO_InitTypeDef DPinout,BPinin; DPinout.GPIO_Pin=GPIO_Pin_All; DPinout.GPIO_Mode=GPIO_Mode_Out_PP; DPinout.GPIO_Speed=GPIO_Speed_10MHz; BPinin.GPIO_Pin=GPIO_Pin_9; BPinin.GPIO_Mode=GPIO_Mode_IPD; BPinin.GPIO_Speed=GPIO_Speed_10MHz; GPIO_Init(GPIOD,&DPinout); GPIO_Init(GPIOB,&BPinin); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC_Rx, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC_Tx, ENABLE); ETH_InitTypeDef ETH_Var; ETH_Var.ETH_ReceiveAll=DISABLE; ETH_Var.ETH_ReceiveOwn=ETH_ReceiveOwn_Enable; ETH_StructInit(Ð_Var); ETH_PHYLoopBackCmd(PHY_Loopback, ETH_LoopbackMode_Enable); ETH_MACTransmissionCmd(ENABLE); ETH_MACReceptionCmd(ENABLE); ETH_MACAddressConfig(ETH_MAC_Address0,ETH_DMARxDesc_Buffer1 ); ETH_Init(Ð_Var,0x01); ETH_Start(); ETH_DMADESCTypeDef ETH_DMA_Var; ETH_DMARxDescReceiveITConfig(Ð_DMA_Var,ENABLE); ETH_DMARxDescChainInit(Ð_DMA_Var,ETH_DMARxDesc_Buffer1,1); ETH_DMARxDescSecondAddressChainedCmd(Ð_DMA_Var,ENABLE);