硬件平台:正點原子阿波羅F429
軟件工具:STM32CubeMX 5.6.0
開發IDE: SW4STM32
參考博客:https://blog.csdn.net/u013809244/article/details/103770782
參考文檔:正點原子的STM32F429 LWIP 開發手冊 V1.0
首先需要了解下STM32F429的以太網框圖如下,STM32F429內部集成了MAC控制器,支持MII,RMII接口與外部PHY芯片連接
並且支持SMI(MDIO&MDC)接口配置外部以太網PHY芯片,正點原子阿波羅F429開發板上使用的PHY是LAN8720A
硬件連接圖如下:
在開始實現以太網通信前,首先了解下Ethernet中的MAC,PHY,MII/RMII相關知識,如果想了解更多相關
點擊 Ethernet相關
再看一下LAN8720A與STM32F429開發板的連接,原理圖如下:
從上圖可以看出,LAN8720A總共通過10跟線同STM32F429連接,注意:ETH_MDIO和USART2_TX共用、RMII_TX_EN和USART3_RX共用,
所以他們不能同時使用,使用時需要注意這個問題。另外LAN8720A的ETH_RESET腳是連接在PCF8574的P7上面的(經過Q1取反),所以,
使用網絡功能的時候,必須配置PCF8574對ETH_RESET進行控制,才可以正常運行。
STM32CUBEMX配置以太網
由於STM32CUBEMX內集成LWIP(TCP/IP協議棧),就不需要我們進行復雜的移植,只需簡單的配置。
1)配置RCC,外部晶振25MHZ
2)配置SYS
3)配置USART1進行printf打印調試信息
4)以太網配置
代碼部分請參考: https://blog.csdn.net/u013809244/article/details/103770782
測試開發板以獲取動態IP如下
我使用的是路由器動態分配IP。通過ping命令(ICMP)測試是否聯通。