[应用相关] 在STM32CubeMX中配置LwIP

[复制链接]
2511|15
 楼主| wowu 发表于 2019-7-4 10:03 | 显示全部楼层 |阅读模式
本文介绍在STM32CubeMX中配置LWIP的方法,STM32CubeMX的版本号为5.0,LwIP的版本号为2.03,FreeRTOS的版本号为9.0.0,CMSIS-RTOS的版本号为1.02。

1、RCC设置
RCC设置如下图所示,使能外部高速晶振,主时钟进行输出(这点比较重要,该时钟用于向DP83848提供时钟),DP83848是我现在使用的PHY,具体的用法查看常用元器件使用方法13:物理层接口芯片DP83848的使用方法这篇日志即可。
978435d1d5e63d7505.png

 楼主| wowu 发表于 2019-7-4 10:03 | 显示全部楼层
2、SYS设置

SYS设置如下图所示,使能SW调试方式,使用TIM1作为时钟基准源(此选项是为了方面FreeRTOS操作系统的使用)。

2018121920123878.jpg


 楼主| wowu 发表于 2019-7-4 10:03 | 显示全部楼层
3、ETH设置

ETH选择RMII模式,这与硬件设计相关,具体可查看常用元器件使用方法13:物理层接口芯片DP83848的使用方法


 楼主| wowu 发表于 2019-7-4 10:04 | 显示全部楼层
ETH的基本参数设置如下,不使能自动协商方式,速度选择10Bps(这点将在后续的**中进一步讨论),全双工模式,指定了缺省的IP地址,物理地址设置为1(这与硬件设计相关,具体可查看常用元器件使用方法13:物理层接口芯片DP83848的使用方法),ETH的接收采用中断方式,发送的效验和由硬件计算。

552625d1d5ea0050f4.png

 楼主| wowu 发表于 2019-7-4 10:04 | 显示全部楼层

高级参数的设置,基本上都维持原有的设置即可,具体的细节可查看DP83848的数据手册,参考设置如下图所示。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg

20181219212333181.jpg


 楼主| wowu 发表于 2019-7-4 10:04 | 显示全部楼层

最后,还需使能全局中断,如下图所示。

20181219212710446.jpg


 楼主| wowu 发表于 2019-7-4 10:05 | 显示全部楼层
4、FreeRTOS设置
FreeRTOS的设置比较简单,是能后,选择默认的参数设置即可。
 楼主| wowu 发表于 2019-7-4 10:05 | 显示全部楼层
5、LwIP设置

对于LwIP的设置,我们去除DHCP功能,用以指定固定IP地址。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg


 楼主| wowu 发表于 2019-7-4 10:05 | 显示全部楼层

在Key Options选项中已经使能了OS,我们选择默认的参数即可。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg


 楼主| wowu 发表于 2019-7-4 10:06 | 显示全部楼层

如果使能了IPV6,则按照如下参数进行配置。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg


 楼主| wowu 发表于 2019-7-4 10:06 | 显示全部楼层
6、时钟配置

可按照下图所示进行时钟配置,关键点在于要使MCO输出50MHz正弦波。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg


 楼主| wowu 发表于 2019-7-4 10:07 | 显示全部楼层
7、生成程序

上述参数设置完毕后,就可以生成程序了。


 楼主| wowu 发表于 2019-7-4 10:07 | 显示全部楼层
8、设置ST-LINK

如下图所示,这样程序下载后,可以自动运行。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg


 楼主| wowu 发表于 2019-7-4 10:08 | 显示全部楼层
9、程序的编译和下载

还有操作系统的程序,不需要进行任何改进,就可以进行编译了,编译后,将程序下载到目标板。


 楼主| wowu 发表于 2019-7-4 10:09 | 显示全部楼层
10、程序的测试

我们可以使用Ping命令进行测试,如下图所示,成功即表示硬件设计和软件的初步设计没有问题,现在可以在此基础上,进一步完成更为复杂的程序了。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmd3dWZlaXlhbmcxMjM0Ng==,size_16,color_FFFFFF,t_70.jpg


mtraveler 发表于 2019-11-5 13:29 | 显示全部楼层
请教一下为什么我的cubeMX配置的时候选择ETH的RX mode是 中断接收,跳到LWIP配置的时候,一点ENable,ETH接收方式就提示叉号呢?请问怎么解决啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

136

主题

4354

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部