急,stm32f407配置dp83848MII模式

2019-07-20 16:26发布

师兄们您们好, 最近在调一个板子 用到了f407+dp83848 MII 模式 调了一周了 还是没有进展 这是我的配置程序 看对吗
u8 DP83848_Init()
{
  u8 rval = 0;
        GPIO_InitTypeDef   GPIO_InitStructure;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);//ê1ÄüGPIOê±Öó
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);//ê1ÄüSYSCLKê±Öó
        SYSCFG_ETH_MediaInterfaceConfig(SYSCFG_ETH_MediaInterface_MII);//MACoíPHYÖ®¼äê1óÃMII½ó¿ú
       
        //PA0        PA8
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;   
        GPIO_Init(GPIOA, &GPIO_InitStructure);
//        RCC_MCO1Config(RCC_MCO1Source_HSE, RCC_MCO1Div_1);
       

        //ÅäÖ&#195A1 PA2 PA7
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource1,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource7,GPIO_AF_ETH);
        GPIO_ResetBits(GPIOA,GPIO_PinSource7);
       
        //Å&#228B8        PB11 PB12 PB13
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOB,&GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource8,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource12,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_ETH);
        //PC2        PC3
        GPIO_InitStructure.GPIO_Pin        =GPIO_Pin_2|GPIO_Pin_3;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOC,&GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource2,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource3,GPIO_AF_ETH);
        //ÅäÖ&#195C1 PC4 PC5 PB0 PB1 PB10
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOB,&GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource0,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_ETH);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOC,&GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource1,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource4,GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource5,GPIO_AF_ETH);
       
        ETHERNET_NVICCongfiguration();
        rval = ETH_MACDMA_Config();
        return !rval;//ETHμÄ1æÔòÎa£o0£¬ê§°ü£»1£¬3é1|£»ËùòÔÕaàïòaè¡·′ò»ÏÂ
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。