CubeMX4.12,F407,DP83848,支持库最新 生成的工程开了FreeRTOS和LWIP,LWIP设定为自动配置IP。。 现在bug是能收(开了LWIP的debug信息,收到后有提示),但是弄死发不出去。。 感觉io配置应该没问题了吧。。 试了下一个老工程,库都完全不一样的。。正常。说明板子没问题。 然后跟了下对Phy reg的写入操作,发现新工程文件有个bug,就是stm32f4xx_hal_conf.h里面把PHY_MICR_INT_OE定义成了2,应该是1 而且很奇怪明明template文件都是1.。。不知道CubeMX搞什么鬼。。。 但是改了之后还是不行,咳咳,此时新老工程对phy的reg操作完全一样了 求一个跟踪问题的方向~~~ ---------- 咳咳 发现CPU选错了 144的选成100了 新建工程重新分配gpiog就正常了 之前因为rx正常,其他功能正常,也一直没朝那边想。。。 不过也好,把lwip的init代码和hal的eth代码基本上看完了。。 |
ETH_RMII_TX_EN -----> PG11
ETH_RMII_TXD0 -------> PG13
ETH_RMII_TXD1 -------> PG14
/* Configure PG11, PG14 and PG13 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_13 | GPIO_Pin_14;
GPIO_Init(GPIOG, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource11, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource13, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource14, GPIO_AF_ETH);
新的,MX生成的,是GPIOB。而且芯片上似乎也没有GPIOG呀。。
PB11 ------> ETH_TX_EN
PB12 ------> ETH_TXD0
PB13 ------> ETH_TXD1
GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
其他pin都一致,所以rx也正确。。直接粗暴改成GPIOG,无用。。