
本人自从大学时期就开始使用STM32单片机,从最原始的stm32f103到107再到如今的207,虽说是跨越了不同的芯片,但都还是cortex-m3系列的单片机,无非是外设和处理速度增加了而已,开发思路和103完全相同,没有什么特别的。下面来说说lwip的开发。8 _ E8 z3 |7 y7 p6 r 1、硬件构成:5 e9 A: H5 U) g/ I8 a9 Q& z) t- m M$ V 因为根据stm32F207datasheet中Alternate function mapping里面的描述, ![]() ![]() ![]() ![]() ![]() 可以知道以太网的连接管教,然后参考官方提供的“STM3220G-EVAL board”,stm32f207ZG的连接方法与评估板完全一致,可以设计stm32f207zg原理图,如下图所示5 \# H2 L" [" e& H ![]() 仍然采用处理器+DP83848的方式,DP83848原理图如下所示 ![]() 这样连接,就可以完成以太网已经的设计,这里需要说明一天,外界连接DP83848的四根数据线时,需要用一个带有网络变压器的网络头才能形成正常的通信,在此需要注意。2 w4 W0 d* p) { 2、软件设计 软件设计可以参考“STM3220G-EVAL board”自带的stm32f2x7_eth_lwip.zip文件,里面有没有操作系统的TCP/IP和带有FreeRTOS操作系统的TCP/IP实现方法,可以将自己不需要的部分就地删除,预留自己需要的部分就行修改,针对main函数里面最开始的初始化无非就是7 V2 v2 a3 L8 s( ]! W/ K) K ETH_BSP_Config();// configure ethernet (GPIOs,clocks,MAC,DMA) LwIP_Init();// Initilaize the LwIP stack6 ]) N9 T( b$ N. z) }' I 两个函数,一个是底层硬件驱动初始化,一个是协议栈的初始化,这两个函数完全不用修改即可以使用,然后我们就可以针对应用层进行设计了 作为服务器时:% J; C0 O' m; s' Q( a, t( f ![]() 在tcp_echoserver_accept里面进行应用层设计即可。 最为客户端时: ![]() 在tcp_echoclient_connected里面进行应用层设计即可。+ N+ y+ q( K7 q: q/ e3 g |
STM32硬件结构学习
stm32f207/stm32f407擦除内部flash讲解
【经验分享】STM32F2 中 DMA 的 FIFO 模式
STM32F2x7 通过以太网实现在应用中编程 (IAP)
STM32F2xx 微控制器中的 EEPROM 模拟
在 STM32 F0、 F2、 F3、 F4 和 L1 系列MCU 中使用硬件实时时钟 (RTC)
STM32F1xx、STM32F2xx、STM32F4xx、STM32L1xx、STM32F30/31/37/38x 定时器概览
使用 STM32F2xx 和 STM32F4xx 微控制器时如何提高 ADC 测量精度
使用 STM32F2 和 STM32F4 DMA 控制器
STM32F2x7 通过以太网实现在应用中编程 (IAP)
RE:STM32F207ZGT6处理器 LWIP以太网网络学习心得