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