文章目錄
LWIP教程1——Cubemx 配置無操作系統下的LWIP初始化
1. 環境
1.1 軟件環境:
- packages版本(STM32F4 1.21)
- cubemx版本(version4.27.0 && STM32Cube v1.0)
- MDK版本(KEIL5 V5.23.0.0)
1.2 硬件環境
- 正點原子探索者開發板(STM32F407ZGT6)
- 網絡接口原理圖部分
注意:LAN8720A 可以通過 PHYAD0 引腳來配置,該引腳與 RXER 引腳複用,芯片內部自帶下拉電阻,當硬復位結束後, LAN8720A 會讀取該引腳電平,作爲器件的 SMI 地址,接下拉電阻時(浮空也可以,因爲芯片內部自帶了下拉電阻),設置 SMI 地址爲 0,當外接上拉電阻後,可以設置爲 1。本硬件RXER引腳浮空,其PHY芯片地址爲0。
2. cubemx配置主要內容
2.1 RCC配置
2.2 SYS配置
2.3 USART1配置
2.4 ETH配置
ETH參數設置需要根據芯片手冊來確定部分數據
- PHY芯片的配置需要注意以下幾項:
- ETH配置中的高級參數配置
- PHY參數
user PHY
,CUBEMX默認選擇的是LAN8742A_PHY_ADDRESS
。- PHY參數
PHY Address Value
,設置爲0
,這個值需要根據硬件連接來確定(LAN8720A 可以通過 PHYAD0 引腳來配置,該引腳與 RXER 引腳複用,芯片內部自帶下拉電阻,當硬復位結束後, LAN8720A 會讀取該引腳電平,作爲器件的 SMI 地址,接下拉電阻時(浮空也可以,因爲芯片內部自帶了下拉電阻),設置 SMI 地址爲 0,當外接上拉電阻後,可以設置爲 1。本硬件RXER引腳浮空,其PHY芯片地址爲0)。- PHY參數
PHY name
,是一個標識符,可以隨便設置,我這裏設置的是LAN8720A
。
- 高級參數配置的最後三項參數設置需要根據芯片手冊來設定
- 參數
PHY special control/status register Offset
,根據芯片手冊看到是十進制31。- 參數
PHY Speed mask
,根據芯片手冊看到是[bit3:bit2]表示速度掩碼。- 參數
PHY Duplex mask
,根據芯片手冊看到是[bit4]表示工作方式是全雙工還是半雙工掩碼。
2.5 LWIP配置
LWIP使能
LWIP參數配置
2.6 時鐘配置
3. 代碼完善
3.1 添加對PHY硬件復位的代碼
3.2 主函數添加LWIP線程函數
4. 實驗效果
4.1 路由器端查看
是否存在已經在工程中設置ip地址爲192.168.0.100
,MAC地址爲00:80:E1:00:00:00
的設備。
可以看到IP地址和MAC地址符合我們代碼中設置的。
4.2 ping開發板
ping設置的IP地址192.168.0.100
看能否ping通
可以看到IP地址可以ping通,延時不超過1ms。