2025年pcl头文件(lpcstr头文件)

pcl头文件(lpcstr头文件)开发平台 STM32F407 DP83848 标准库开发 移植 FreeRTOS LwIP 实现以太网通信 简要 LwIP 不仅能在裸机上开发 也能在操作系统环境下运行 而且在操作系统环境下 用户能使用 NETCONN API 与 Socket API 编程 相比于 RAW API 编程会更加简便 使用操作系统环境下 这意味着 多线程的环境 一般来说

大家好,我是讯享网,很高兴认识大家。



简要

LwIP 不仅能在裸机上开发,也能在操作系统环境下运行,而且在操作系统环境下,用户能使用 NETCONN API 与 Socket API 编程。相比于 RAW API 编程会更加简便。使用操作系统环境下,这意味着 多线程的环境,一般来说,LwIP作为一个独立的处理线程运行,用户也独立一个或者多个线程,这样就在操作系统中相互独立开了,并且借助操作系统的 IPC 通信机制,更好的实现功能的需求。

LwIP 需要使用操作系统,那么就需要依赖操作系统自身的通信机制,如信号量、互斥量、消息队列(邮箱)等。所以LwIP设计者在设计的时候就提供了一套与操作系统相关的接口,由用户依据操作系统的不同进行移植。这样子就能降低耦合度,让LwIP内核不受其运行环境的影响,因为往往用户并不能完全了解内核的运作,所以只需要用户在移植的时候对LwIP提供的接口,根据不同的操作系统进行完善就可以。

移植参考:

ST官方提供了一个以太网通信的Demo:STSW-STM32070,适配与STM32F4系列,使用LwIP协议栈,适配PHY为DP83848,移植时,主要参考该demo。

stm32cubemx Freertos不生成文件_#define
讯享网

STSW-STM32070介绍

stm32cubemx Freertos不生成文件_TCP_02

移植工作

  1. 准备好一个带FreeRTOS的项目工程文件,将刚才下载的 stsw-stm32070.zip 解压后的 lwip-1.4.1拷贝到工程目录下,如图所示:
  2. stm32cubemx Freertos不生成文件_DHCP_03

  3. ThirdParth目录下:
  4. stm32cubemx Freertos不生成文件_DHCP_04

  5. lwip-1.4.1 目录下:
  6. stm32cubemx Freertos不生成文件_#define_05

  7. 其中 prot 文件就是 LwIP与STM32F4x7移植的接口文件,
  8. stm32cubemx Freertos不生成文件_TCP_06


  9. stm32cubemx Freertos不生成文件_#define_07

  10. 其中分为带FreeRTOS操作系统和不带操作系统(Standalone)的接口。
  11. 添加文件到项目组文件夹,如图所示:
  12. stm32cubemx Freertos不生成文件_TCP_08

  13. 展开为:
  14. stm32cubemx Freertos不生成文件_DHCP_09

  15. 该文件位于 /STM32F4x7_ETH_LwIP_V1.1.1/Libraries/STM32F4x7_ETH_Driver下面的 stm32f4x7_eth.c 以及配套的.h文件 。该文件是官方提供类似于标准库提供的那些I2C,UART,SPI等库函数文件。
  16. stm32cubemx Freertos不生成文件_TCP_10

  17. 这些文件是 LwIP-1.4.1 的源码文件和适配FreeRTOS的接口文件。
  18. 添加相应源文件的头文件路径
  19. stm32cubemx Freertos不生成文件_#define_11

  20. 添加 stm32f4x7_eth_bsp.c 文件并修改
    该文件位于如下所示文件下面:

    由于demo中采用的是 MII模式,而我们硬件采用的是RMII模式,所以需要修改部分定义:
    在main.h文件中修改宏:

    stm32f4x7_eth_bsp.c中修改:

    由于我们没有使用以太网链接中断(DP83848 第7脚:PWR_DOWN/INT ),因此注释掉关于以太网链接中断配置。
    GPIO部分配置也保留RMII的配置:
  1. 添加 netconf.c文件:
    该文件位于如下路径:
    该文件主要是网络连接配置文件,主要与LwIP初始化,DHCP任务初始化,直接移植过来,删除不必要的LCD显示即可:
  1. 添加 lwippopts.h 文件。
    该文件位于如下所示路径中
    将其添加到项目文件中。
    lwipopts.h 就是用于配置 LwIP 的相关参数的,一般来说LwIP默认会有参数的配置,存放在opt.h文件中,如果用户没有在lwipopts.h文件进行配置,那么LwIP就会使用opt.h默认的参数,注意,在移植的时候出现定义某些参数是非常重要的,这对我们LwIP的性能至关重要,甚至在配置错误的时候能直接导致LwIP的运行崩溃。具体的作用可参考注释:
  1. 修改 stm32f4xx_it.c 文件。
    因为我们这里使用了以太网中断,所以需要添加以太网中断服务函数,否则就会跳转失败。
  1. main.c中,,添加以太网底层bsp驱动和LwIP驱动。

    以上即完成了 LwIP 与 FreeRTOS的移植。
ping测试

底层网络配置在main.h文件中,

stm32cubemx Freertos不生成文件_TCP_12

移植注意事项
  1. 第一次在移植的过程中,可能是DP83848芯片有问题。通过电脑连接网线至底层板卡后2个指示灯一直亮,也没有闪烁。(PS: 刚开始还不清楚是芯片有问题,结果一直在找软件的问题,卡了3-4天)后来换了一块板卡后,发现不关有没有配置 dp83849 和 lwip 刚插上网线后,有一个灯是会闪烁的。

stm32cubemx Freertos不生成文件_DHCP_13

小讯
上一篇 2025-04-19 18:19
下一篇 2025-05-10 11:24

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/163197.html