STM32学习笔记之以太网的通信+lwip协议移植

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_23338865/article/details/82785080

STM32F107自带 MAC控制器

而有的芯片把Mac和PHY坐到一起了,像ENC28J60

以太网通信  依据 TCP/IP协议是  LWIP协议,这个LWIP 协议是可以运行在STM32上面的。

STM32F107为以太网外设专门做的库直接下载对应的demo 可能协议版本不一样,下载运行即可。

主要有几个部分说明一下

1、修改 ethernetif.c 

     包含了与以太网网卡密切相关的初始化、发送、接收等函数的实现。这个文件夹中的函数并不能使用,它们都是一个框架性的结构,移植者需要根据自己使用的网卡特性来完成这些函数。

2、mem管理

     使用系统堆内存管理或者使用自定义内存管理(类似战舰开发板内存管理)

    //u8_t ram_heap[MEM_SIZE_ALIGNED + (2*SIZEOF_STRUCT_MEM) + MEM_ALIGNMENT];

    //#define LWIP_RAM_HEAP_POINTER ram_heap

3、 平台相关

    lwipopts.h                // lwip配置文件,详见附件

       1、DHCP是否被使能,参数设置是LWIP_DHCP

  2、TCP和UDP的连接数量,分别参数是MEMP_NUM_TCP_PCB 和MEMP_NUM_UDP_PCB

  3、堆栈的数量设置参数是MEM_SIZE

       4、缓冲区的数量和大小,参数是 PBUF_POOL_SIZE和PBUF_POOL_BUFSIZE

    cc.h

    #define BYTE_ORDER LITTLE_ENDIAN       //  cpu大小端

    

4、是否移植操作系统(使能对应的宏)

    主要对应 Sys_arch.c 移植的主要工作在这里,关于信号量、消息队列、任务创建    

    如果使能操作系统、LwIP的初始化必须在RTOS启动之后才可以进行, 因为它的初始化代码使用了一些OS提供的功能!!!     

 5、接口选择(在对应的文件下)

    //#define MII_MODE         

    #define RMII_MODE      

猜你喜欢

转载自blog.csdn.net/sinat_23338865/article/details/82785080