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