MCU: STM32F429IGT6
工具:STM32CubeMx 版本號 5.0.0
Keil uVersion5
目的:使用LWIP 實現簡單的網絡連通
一 簡介
LWIP(Light Weight Internet Protoco1)是瑞士計算機科學院(Swedish Institute of Computer Science)AdamDunkels等人開發的一套用於嵌入式系統的開放源代碼TCP/IP協議棧。LWIP的含義是Light Weight(輕型)IP協議。LWIP可以移植到操作系統上,也可以在無操作系統的情況下獨立運行。LWIP TCP/IP實現的重點是在保持TCP協議主要功能的基礎上減少對RAM的占用。一般它只需要幾十KB的RAM和40 KB左右的ROM就可以運行,這使LWIP協議棧適合在小型嵌入式系統中使用。
二 創建工程
本項目 使用 STM32F429IGT6 芯片, PHY 使用的LAN8720A
新建工程,選擇芯片
因為項目中使用freeRTOS, timebase 重新選擇一個定時器,不使用SysTick
配置RCC ,我的電路使用的是25MHz無源晶振,這里選擇高速外部時鍾 HSE
接下來配置時鍾,由於我的電路中使用的是25MHz晶振,HCLK 配180MHz,按Enter鍵,軟件自動配好倍頻,分頻系數
配置 ETH, 我的PHY 芯片 支持 RMII
根據電路連接配置GPIO口
配置 FreeRTOS
配置LWIP
如果DHCP 需要,選擇Enable
最后配置工程管理
點擊 GENERATE CODE 生成代碼
用Keil uVersion5 打開工程,編譯燒寫
三 結果
網線連接上板子
ping 192.168.1.21
代碼 上傳到 gitHub上 https://github.com/itachi1121/stm32-lwip.git