关于NUCLEO-F207ZG开发板通过STM32CubeMx配置(四)配置FreeRTOS+Lwip并ping通


前言

        因为工作关系需要用到STM32F207ZGTx的芯片,所以公司购买了基于STM32F207ZGT6U芯片的ST开发板NUCLEO-F207ZG。而且要求使用FeeRTOS+Lwip的环境,来进行软件开发,主要目的是通过此环境,运行一个软件下载程序,此程序用到了lwip库封装的socket套接字函数库,通过Tcp请求服务器下载文件包。因为我自己第一次正式做一个关于STM32的程序项目,之前只是在学校学习和了解一些基础,认识比较浅显,所以写下本文来加深自己的学习和了解,并且总计经验分享出来,有问题可以共同探讨

        本文内容:本文章主要讲解其中一个步骤,即通过STM32CubeMx配置NUCLEO-F207ZG开发板运行FreeRTOS+Lwip并ping通

      配置软件:STM32CubeMx 6.2.1

        开发板:NUCLEO-F207ZG

        配置环境:FreeRTOS+Lwip

        编译软件:keil  5.27

目录

前言

一、详细步骤

1.在STM32CubeMx软件中配置芯片

2.选择NUCLEO-F207ZG

3.创建工程配置

        3.1.进入整个工程配置界面

        3.2.配置RCC时钟源

        3.3.配置系统sys

         3.4.配置FreeRTOS 

        3.5.开启LWIP

        3.6.Clock Configuration

        3.7.配置Project Manager

4.生成工程

5.打开工程

6.编译

7.烧录

8.查看结果

        8.1.运行程序

        8.2.ping

总结


一、详细步骤

1.在STM32CubeMx软件中配置芯片

        打开STM32CubeMx软件选择配置芯片

 

        这里我选择第二项start my project  ST Board,因为是基于ST的开发板,所以引脚都是配置好的,直接选择就可以了,第一项选择芯片然后进行需要复杂一些。

2.选择NUCLEO-F207ZG

        在左上角选择NUCLEO-F207ZG

 

3.创建工程配置

        点击开发板,选择右上角start project开始创建基于NUCLEO-F207ZG的工程配置

 

        3.1.进入整个工程配置界面

 

        3.2.配置RCC时钟源

                (一)、首先我们需要配置RCC时钟源,配置高速时钟HSE,选择Crystal/Ceramic Resonator,低速时钟LSE不使能,开启外部时钟2,下面configuration选项配置NVIC setting 选择使能RCC中断。

 

                (二)、Configuration配置中GPIO settings 配置外部时钟2,选择输出高电平

 

        3.3.配置系统sys

                配置系统sys,Debug选择串口Serial Wire, 因为使用FreeRTOS 所以基础时钟源不能选系统时钟源sysTick,所以这里选择TIM2

 

 

         3.4.配置FreeRTOS 

                 (一)、配置FreeRTOS ,选择CMSIS_V1版本

 

                 (二)、开启FreeRTOS任务Task

                        在Tasks and QueueS选项中配置开启FreeRTOS任务,任务数量根据自己需要,点击Add添加即可

 

                 (三)、修改任务名称

                        这里修改第一个任务的函数名称,任务栈空间大小,以及任务的优先级

 

 

                        这里添加了两个任务task1 和task2, 优先级都为normal ,栈大小stack size为1024字即1024*4字节=4k。

        3.5.开启LWIP

               (一)、配置configuration

                        配置configuration-General Settings,DHCP我不需要选择关闭,选择静态ip,这里根据你的实际局域网ip和网关配置即可,不然不能ping通,不能照搬我的ip配置,其他地方默认配置即可

                (二)、配置ETH

                        然后查看ETH配置,如果配置成功,默认mode是RMII模式,然后开启了Ethernet global interrupt其他配置默认即可。

 

                 (三)、ETH Configuration-Advanced parameters配置

                        Configuration-Advanced parameters配置选择PHY默认LAN8742A_PHY_ADDRESS即可

        3.6.Clock Configuration

                进入Clock Configuration,HCLK根据开发板信息选择最大120Mhz,外部时钟2配置为60MHz,注意,外部时钟如果不是60MHz,会出现不启用的情况

 

        3.7.配置Project Manager

                (一)、Project配置

                (二)、Code Generator

 

4.生成工程

        点击右上角GENERATE CODE

 

5.打开工程

        在keil中打开工程

6.编译

        在keil中编译,没有报错

 

7.烧录

        点击load,烧录程序

        注意load之前最好打开debug中的下载好程序后,复位和运行,这样程序下载好之后会直接运行,不然需要在板子上按一下复位键。这里可能会影响,导致ping不通的情况出现

8.查看结果

        8.1.运行程序

                运行程序后,查看网口的数据灯都是亮着的说明驱动配置是ok的。黑色按键为复位按键

        8.2.ping

                我们所设置的ip地址,可以ping通,说明我们的配置正确

 9.结束


总结

  1. Dubeg下载时需要提前选在好Reset and Run 这样下载后程序会直接运行,如果你忘记了 ,会导致ping不通的情况发生。
  2. 注意ETH不要提前配置,先开启FreeRTOS和Lwip,设置完成这两项后,再去查看ETH配置时,都默认配置完成了。自己提前配置好,会导致没有跟Lwip中的网口驱动配置相关联,最好出现ping不通的情况。
  3. 在keil编译时,如果完全配置正确是不需要对代码进行修改的,直接编译-下载-运行即可。
  4. 如果按照以上步骤操作,依然出现ping不通的情况,那么建议重复一遍,有可能忽略了某个地方,同时也能加深映像。
  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值