本帖最后由 zzccww 于 2018-2-26 10:49 编辑 我用的stm32cubemx生成的代码,PHY已设置好,可是怎么都PING不通,轮询接收不到数据 PHY的寄存器操作正常,用的RMII,MCO输出正常,请大侠帮忙看看! 端口配置如下: /* USER CODE BEGIN ETH_MspInit 0 */ /* USER CODE END ETH_MspInit 0 */ /* Enable Peripheral clock */ __HAL_RCC_ETH_CLK_ENABLE(); /**ETH GPIO Configuration PC1 ------> ETH_MDC PA1 ------> ETH_REF_CLK PA2 ------> ETH_MDIO PA7 ------> ETH_CRS_DV PC4 ------> ETH_RXD0 PC5 ------> ETH_RXD1 PB11 ------> ETH_TX_EN PB12 ------> ETH_TXD0 PB13 ------> ETH_TXD1 */ GPIO_InitStruct.Pin = GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_2; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /* USER CODE BEGIN ETH_MspInit 1 */ main函数 int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_LWIP_Init(); MX_USART1_UART_Init(); /* Initialize interrupts */ MX_NVIC_Init(); /* USER CODE BEGIN 2 */ udp_echoserver_init(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ MX_LWIP_Process(); } /* USER CODE END 3 */ } |
已上传附件,请帮忙看看,谢谢!
test.rar
2018-2-26 12:52 上传
点击文件名下载附件
下载积分: ST金币 -12.36 KB, 下载次数: 48, 下载积分: ST金币 -1
PHY的寄存器操作正常,用的RMII,MCO输出正常,请大侠帮忙看看!
PHY的初始化参数是否设置好?IP101GR 的几个重要参数设置要在Lwip中配置好。
特别是中断寄存器地址。不能ping多半是寄存器地址没在Lwip中配置好。
评分
查看全部评分
图1刚算了一下,50M波特率。
你用100M示波器抓到这个波形的话,已经算很好了。实际的波形比示波器抓到的要好,STM32应该能识别。
把你stm32cubemx的配置文件(.ioc文件)发个上来
https://www.stmcu.org.cn/module/forum/thread-612788-1-1.html
如果是的话,那么信号质量好差。示波器多少带宽的,建议200M以上带宽,至少不要低于100M
评分
查看全部评分
在MCU端测量的,示波器带宽为100MHz,这种质量的信号,STM32能解析出来吗?
附图为PHY的配置
PHYçé ç½®
对照起数据手册来看的确某些寄存器值没有设置对
已解决,谢谢!
已解决,谢谢!
怎么解决的啊,楼主分享下呢
网络速度配置有问题,不一致