
开发环境: 适用CUBE版本:STM32CubeIDE 1.9.0 及以上 stm32芯片型号:H723ZET6 一、配置部分 (一)常规配置,RCC和SYS RCC启用外部高速时钟 ![]() (二)串口 串口的配置和代码实现本文不加以说明 ![]() (三)ETH配置 MAC随意,不必和图中一样 ![]() (四)LWIP(重点来了) 首先是LWIP的常规配置,设置IP,其他默认。 ![]() 排坑一:H723系列不同于H7系列,官方库默认配置是0x30044000,我相信有不少朋友试过:代码编译正常,烧录正常,但是代码一执行就进入Handler。这是因为H723的内存不同于其他H7系列。H723的RAM_D2的地址范围是0x30000000~0x30008000,而其他的H7空间比这个大得多。 ![]() 然后注意LWIP_NETIF_LINK_CALLBACK(检测网线插拔的)要使能就行,其他配置默认 ![]() 排坑二:你实际用的PHY不一定是LAN8742,但官方配置就是默认且必须选择LAN8742,恶心死我了,所以到时要去修改它源码的PHY地址,后面会说到在哪里改。 ![]() 然后这里也默认就行 ![]() (五)PHY的复位引脚配置 我看很多教程都没详细写这一步,经常不知道这个复位是哪来的,实际上是必要的,除非硬件上设置了自动复位。设置一个引脚为输出模式,常态高电平。(具体哪个是复位引脚要看你们自己的硬件设计) ![]() 并且常态设置为高电平 ![]() (六)MPU配置 排坑三:H7系列的芯片想用LWIP必须配置MPU,而H723的配置与其他H7系列又有些不同,但哪里不同不需要管了,按我下面配置就完事 ![]() 就这两个 ![]() (七)时钟树配置 这个没啥好说的,常规操作。 ![]() (八)生成代码 这里可以改大点 ![]() 然后勾选划分模块 ![]() 保存后就可以生成代码了。后面来到代码部分: 二、代码部分 (一)main函数的修改 使能D2SRAM1时钟: ![]() 后面再加上这几行,清空DVache和PHY复位 ![]() 当然还有MX_LWIP_Process(),加在循环里面 ![]() (二) 修改phy地址 因为我用的phy地址是0x1,所以需要修改才能用,在这里修改: ![]() 找到函数LAN8742_Init(lan8742_Object_t *pObj) 在这个位置,强行修改phy的地址为0x1,很不好的是如果重新配置了ioc生成代码,又要重新在这里添加修改 ![]() (三)修改ld文件 很多人都不知道要改这里,少了这里不管怎么样配置都无法正常使用以太网,巨恶心,就是这个文件: ![]() 拉到最下面的这个位置,添加以下代码(目的是将lwip的内存放进RAM_D2里面): ![]() 到这里,所有的配置就完成了,可以编译烧录,尝试ping网络: ![]() 搞定。 ———————————————— 版权声明:青云客_Hugh |
拷打cubemx【003】——找不到的芯片包
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【2025·STM32峰会】GUI解决方案实训分享4-使用MVP架构从硬件外设读取数据并显示到图形界面、从图形界面发送指令控制硬件外设
【2025·STM32峰会】GUI解决方案实训分享3-搭建空白TouchGFX例程并实现简单的功能(含硬件部分的串口打印)
【2025·STM32峰会】GUI解决方案实训分享2-编译运行TouchGFX咖啡机例程(含桌面仿真)
【2025·STM32峰会】+TouchGFX实现动态进度显示以及界面切换
【2025·STM32峰会】+使用TouchGFX快速创建GUI
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
实战经验 | 关于STM32H7使用LL库生成ADC代码工作异常问题说明
实战经验 | 关于STM32H745的MC SDK电机控制工程问题的解决办法