heth.Init.RxMode = ETH_RXINTERRUPT_MODE; heth.Init.ChecksumMode = ETH_CHECKSUM_BY_HARDWARE; heth.Init.MediaInterface = ETH_MEDIA_INTERFACE_RMII; /* USER CODE BEGIN MACADDRESS */ /* USER CODE END MACADDRESS */ hal_eth_init_status = HAL_ETH_Init(&heth); if (hal_eth_init_status ==...
对于问题1,对描述符操作的代码没多少,我就自己手动修改了stm32h7xx_hal_eth.c中的相关代码(修改过...
这里要特别注意:MCO引脚 PA8的速度一定要调成HIGH,默认的STM32CUBEMX是LOW。 如果速度是LOW的话,大抵上你的程序在HAL_ETH_Init中会得到一个超时的报错(HAL_ETH_STATE_TIMEOUT): while(((heth->Instance)->DMABMR & ETH_DMABMR_SR) != (uint32_t)RESET) {/* Check for the Timeout */if((HAL_GetTi...
void ETH_IRQHandler(void) { HAL_ETH_IRQHandler(&heth); } // 主函数 int main(void) { // 初始化HAL库 HAL_Init(); // 配置系统时钟 SystemClock_Config(); // 初始化以太网接口 MX_ETH_Init(); // 初始化EtherCAT主站 if (ec_init(ETH_IF_NAME)) { Error_Handler(); } // 查找并配置Et...
:进入debug模式发现初始化在HAL_ETH_Init函数中的以下代码出产生了超时错误 /* Wait for software reset / while (READ_BIT(heth-& mintsy 2023-09-07 18:25:06 为什么ETH DMAMR->SWR(软件复位位)仍然是ALWAYS SET? 你好, 我有 STM32H750x MCU。 我想知道为什么 ETH DMAMR->SWR(软件复位位)仍然是...
修改HAL_ETH_Init函数,添加硬复位如下: LWIP测试结果 经过这样子就修改就可以完成了!只用主机能ping通,注意打印口映射代码没写出来,这个很简单,百度一下就有。具体实验图如下: 使用正点原子的串口工具,必须用它的。注意要打开一些调试信息就可以看到了这些打印信息了。
一、ETH简介 STM32F4xx 以太网外设集成在系列控制器内,实际上是通过 DMA 介质访问控制器(MAC),它的功能是实现 MAC 层的任务。借助以太网外设,STM32F4xx 可通过控制器 ETH 外设按照 IEEE 802.3-2002 发送和接收标准 MAC 数据包。ETH 内部专用 DMA 控制器用于 MAC,ETH 支持两个工业标准接口介质的独立接口(MII...
HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_LWIP_Init(); // 初始化网络功能 MX_USART6...
HAL_Init(); //初始化 HAL 库 Stm32_Clock_Init(336,8,2,7); //设置时钟,168Mhz delay_init(168); //初始化延时函数 uart_init(115200); //初始化 USART usmart_dev.init(84); //初始化 USMART LED_Init(); //初始化 LED BEEP_Init(); //初始化蜂鸣器 KEY_Init();...
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Supply configuration update enable / HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY); /* Configure the main internal regulatoroutput voltage / __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); ...