stm32cube生成stm32f407+lwip+freertos(DP83848)

内容借鉴博客stm32cube生成stm32f407+lwip+freertos+8720A_jsnjsfq的博客-CSDN博客

1、打开MCU选择

stm32cube生成stm32f407+lwip+freertos(DP83848)_第1张图片

2、输入搜索,然后找到合适的MCU名称双击自动创建工程(单击可以查看芯片的详细参数有助于选型)

 

 stm32cube生成stm32f407+lwip+freertos(DP83848)_第2张图片

3、配置SYS,我习惯在选项里面选择A->Z排序,便于快速找到各个模块

        选择SYS,设置Debug,我这里选择的Serial Wire使用stlink下载程序

        因为要使用freeRTOS所以要修改Timebase Source为其他的定时器,Systick供freeRTOS使用

stm32cube生成stm32f407+lwip+freertos(DP83848)_第3张图片

 4、配置RCC

        因为外接了8M的晶振,所以这里需要设置为相应的stm32cube生成stm32f407+lwip+freertos(DP83848)_第4张图片

 5、配置ETH

        模式设置为RMII,如需详细模式可百度以太网详解MII接口类型大全 MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XL_Kevin-CSDN博客网络设备中肯定离开不MAC和PHY,本篇文章将详细介绍下以太网中一些常见术语与接口。MAC和PHY结构从硬件角度来看以太网是由CPU,MAC,PHY三部分组成的,如下图示意:上图中DMA集成在CPU,CPU,MAC,PHY并不是集成在同一个芯片内,由于PHY包含大量模拟器件,而MAC是典型的数字电路,考虑到芯片面积及模拟/数字混合架构的原因,将MAC集成进CPU而将PHY留在片外,这...https://blog.csdn.net/baidu_25816669/article/details/104249627然后配置PHY地址,根据硬件情况设置,我采用的DP83848的默认地址1

如果采用的其他网络芯片就选择user PHY,DP83848的复位引脚我是接到主板的复位脚一起的,如有需要可以单独接一个IO口进行配置设置

         

stm32cube生成stm32f407+lwip+freertos(DP83848)_第5张图片

stm32cube生成stm32f407+lwip+freertos(DP83848)_第6张图片

stm32cube生成stm32f407+lwip+freertos(DP83848)_第7张图片

 6、时钟树配置

        设置外部高速晶振为实际使用的8M,配置各个模块到合适的时钟频率 ,在STM32F4的手册里我看到一条要求,使用以太网时需要将AHB时钟大于25M,同时参考时钟必须是50Mhz(硬件相关)

        stm32cube生成stm32f407+lwip+freertos(DP83848)_第8张图片

 stm32cube生成stm32f407+lwip+freertos(DP83848)_第9张图片

 7、串口配置,用于调试

        配置串口2为异步模式,波特率根据实际进行修改,也可以通过代码修改,这里的参数采用默认115200 8个数据位 1个停止位 无奇偶校验stm32cube生成stm32f407+lwip+freertos(DP83848)_第10张图片

 8、freeRTOS

        启动freertos 选择CMSIS_V1,V2的API与V1的有些不同,相当于是V1的扩展版本

        参数配置只留意一下TICK_RATE_HZ:系统时钟节拍频率,单位为HZ。值设置为1000,即周期就是1ms。其他参数默认即可

stm32cube生成stm32f407+lwip+freertos(DP83848)_第11张图片

9、任务及队列设置,这里只是一个test版本所以我只有一个默认任务,堆栈修改大一点(LWIP初始化在这个任务),任务名等均为默认参数,后期复杂功能自行添加修改

stm32cube生成stm32f407+lwip+freertos(DP83848)_第12张图片

 

10、设置Lwip

 使能Lwip,建议关闭DHCP自动分配IP,采用自定义IP信息stm32cube生成stm32f407+lwip+freertos(DP83848)_第13张图片

 11、修改以太网中断优先级,不知道具体作用,感觉就是将他的优先级调小了

 stm32cube生成stm32f407+lwip+freertos(DP83848)_第14张图片

12、以上基本配置就完成了,进行工程输出配置 

        以下是我一般用的输出配置,结合自己需求修改

 stm32cube生成stm32f407+lwip+freertos(DP83848)_第15张图片

 stm32cube生成stm32f407+lwip+freertos(DP83848)_第16张图片

 

13、测试

        点击GENERATE CODE生成工程之后点击打开

        打印调试信息在任务函数里,用于识别代码在运行或者添加运行指示灯,网络测试时不启动主板时ping主板ip的时候ping不同,主板运行之后能够ping通

以上内容为网上查询资料之后实际操作并记录,如有错误或者不足希望提出来我们一起学习进步,

你可能感兴趣的:(stm32,物联网,freertos)