2)摘自《STM32F7 开拓指南(HAL 库版)》关注官方微旗子暗记"大众年夜众号,获取更多资料:正点原子
第六十章 网络通信实验

本章,我们将向大家先容探索者 STM32F4 开拓板的网口及其利用。本章,我们将利用
ALIENTEK 探索者 STM32F4 开拓板自带的网口和 LWIP 实现:TCP 做事器、TCP 客服端、UDP
以及 WEB 做事器等四个功能。本章分为如下几个部分:
60.1 STM32F4 以太网以及 TCP/IP LWIP 简介
60.2 硬件设计
60.3 软件设计
60.4 下载验证
60.1 STM32F4 以太网以及 TCP/IP LWIP 简介
本章,我们须要用到 STM32F4 的以太网掌握器和 LWIP TCP/IP 协议栈。接下来分别先容
这两个部分。
60.1.1 STM32F4 以太网简介
STM32F407 芯片自带以太网模块,该模块包括带专用 DMA 掌握器的 MAC 802.3(介质访
问掌握)掌握器,支持介质独立接口 (MII) 和简化介质独立接口 (RMII),并自带了一个用于
外部 PHY 通信的 SMI 接口,通过一组配置寄存器,用户可以为 MAC 掌握器和 DMA 掌握器选
择所需模式和功能。
STM32F4 自带以太网模块特点包括:
➢ 支持外部 PHY 接口,实现 10M/100Mbit/s 的数据传输速率
➢ 通过符合 IEEE802.3 的 MII/RMII 接口与外部以太网 PHY 进行通信
➢ 支持全双工和半双工操作
➢ 可编程帧长度,支持高达 16KB 巨型帧
➢ 可编程帧间隔(40~96 位韶光,以 8 为步长)
➢ 支持多种灵巧的地址过滤模式
➢ 通过 SMI(MDIO)接口配置和管理 PHY 设备
➢ 支持以太网韶光戳(拜会 IEEE1588-2008),供应 64 位韶光戳
➢ 供应吸收和发送两组 FIFO。
➢ 支持 DMA
STM32F4 以太网功能框图如图 60.1.1.1 所示:
图 60.1.1.1 STM32F4 以太网框图
从上图可以看出,STM32F4 是必须外接 PHY 芯片,才可以完成以太网通信的,外部 PHY
芯片可以通过 MII/RMII 接口与 STM32F4 内部 MAC 连接,并且支持 SMI(MDIO&MDC)接
口配置外部以太网 PHY 芯片。
接下来分别先容 SMI/MII/RMII 接口和外部 PHY 芯片。
SMI 接口,即站管理接口,该接口许可运用程序通过 2 条线:时钟(MDC)和数据线(MDIO)
访问任意 PHY 寄存器。该接口支持访问多达 32 个 PHY,运用程序可以从 32 个 PHY 中选择
一个 PHY,然后从任意 PHY 包含的 32 个寄存器中选择一个寄存器,发送掌握数据或吸收状态
信息。任意给定时间内只能对一个 PHY 中的一个寄存器进行寻址。
MII 接口,即介质独立接口,用于 MAC 层与 PHY 层进行数据传输。STM32F407 通过 MII
与 PHY 层芯片的连接如图 60.1.1.2 所示。
图 60.1.1.2 MII 接口旗子暗记
⚫ MII_TX_CLK:连续时钟旗子暗记。该旗子暗记供应进行 TX 数据传输时的参考时序。标称频率为:
速率为 10 Mbit/s 时为 2.5 MHz;速率为 100 Mbit/s 时为 25 MHz。
本章我们采取 RMII 接口和外部 PHY 芯片连接,实现网络通信功能,探索者 STM32F4 开拓
板利用的是 LAN8720A 作为 PHY 芯片。接下来,我们大略先容一下 LAN8720A 这个芯片。
LAN8720A 是低功耗的 10/100M 以太网 PHY 层芯片,I/O 引脚电压符合 IEEE802.3-2005 标
准,支持通过 RMII 接口与以太网 MAC 层通信,内置 10-BASE-T/100BASE-TX 全双工传输模
块,支持 10Mbps 和 100Mbps。
LAN8720A 可以通过自协商的办法与目的主机最佳的连接办法(速率和双工模式),支持 HP
Auto-MDIX 自动翻转功能,无需改换网线即可将连接变动为直连或交叉连接。LAN8720A 的主
要特点如下:
⚫ 高性能的 10/100M 以太网传输模块
⚫ 支持 RMII 接口以减少引脚数
⚫ 支持全双工和半双工模式
⚫ 两个状态 LED 输出
⚫ 可以利用 25M 晶振以降落本钱
⚫ 支持自协商模式
⚫ 支持 HP Auto-MDIX 自动翻转功能
⚫ 支持 SMI 串行管理接口
⚫ 支持 MAC 接口
LAN8720A 功能框图如图 60.1.1.4 所示。
图 60.1.1.4 LAN8720A 功能框图
LAN8720A 的应脚数是比较少的,因此,很多引脚具有多个功能。这里,我们先容几个重
要的设置。
1,PHY 芯片地址设置
LAN8720A 可以通过 PHYAD0 引脚来配置,该引脚与 RXER 引脚复用,芯片内部自带下
拉电阻,当硬复位结束后,LAN8720A 会读取该引脚电平,作为器件的 SMI 地址,接下拉电阻
时(浮空也可以,由于芯片内部自带了下拉电阻),设置 SMI 地址为 0,当外接上拉电阻后,
可以设置为 1。本章我们采取的是该引脚浮空,即设置 LAN8720 地址为 0。
2,nINT/REFCLKO 引脚功能配置
nINT/REFCLKO 引脚可以用作中断输出,或者参考时钟输出。通过 LED2(nINTSEL)引
脚设置,LED2 引脚的值在芯片复位后,被 LAN8720A 读取,当该引脚接上拉电阻(或浮空,
内置上拉电阻),那么正常事情后,nINT/REFCLKO 引脚将作为中断输出引脚(选中 REF_CLK
IN 模式)。当该引脚接下拉电阻时,正常事情后,nINT/REFCLKO 引脚将作为参考时钟输出(选
中 REF_CLK OUT 模式)。
在 REF_CLK IN 模式,外部必须供应 50Mhz 参考时钟给 LAN8720A 的 XTAL1(CLKIN)
引脚。
在 REF_CLK OUT 模式,LAN8720A 可以外接 25Mhz 石英晶振,通过内部倍频到 50Mhz,
然后通过 REFCLKO 引脚,输出 50Mhz 参考时钟给 MAC 掌握器。这种办法,可以降落 BOM
本钱。
本章,我们设置 nINT/REFCLKO 引脚为参考时钟输出(REF_CLK OUT 模式),用于给
STM32F4 的 RMII 供应 50Mhz 参考时钟。
3,1.2V 内部稳压器配置
LAN8720A 须要 1.2V 电压给 VDDCR 供电,不过芯片内部集成了 1.2V 稳压器,可以通过
LED1(REGOFF)来配置是否利用内部稳压器,当不该用内部稳压器的时候,必须外部供应 1.2V
电压给 VDDCR 引脚。这里我们利用内部稳压器,以是我们在 LED1 接下拉电阻(浮空也行,
内置了下拉电阻),以掌握开启内部 1.2V 稳压器。
末了,我们来看下 LAN8720A 同我们探索者 STM32F4 开拓板的连接关系,如图 60.1.1.5
所示:
图 60.1.1.5 LAN8720A 与 STM32F407ZGT6 连接事理图
从上图可以看出,LAN8720A 统共通过 10 跟线同 STM32F4 连接,把稳:MDIO 同串口 2
的 TX 旗子暗记有共用,以是串口 2 和以太网功能不能同时利用,利用时须要把稳这个问题。
60.1.2 TCP/IP LWIP 简介
1,TCP/IP 简介
TCP/IP 中文名为传输掌握协议/因特网互联协议,别号网络通讯协议,是 Internet 最基本的
协议、Internet 国际互联网络的根本,由网络层的 IP 协议和传输层的 TCP 协议组成。TCP/IP 定
义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采取了 4 层的层级
构造,每一层都呼叫它的下一层所供应的协议来完本钱身的需求。普通而言:TCP 卖力创造传
输的问题,一有问题就发出旗子暗记,哀求重新传输,直到所有数据安全精确地传输到目的地。而
IP 是给因特网的每一台联网设备规定一个地址。
TCP/IP 协议不是 TCP 和 IP 这两个协议的合称,而是指因特网全体 TCP/IP 协议族。从协议
分层模型方面来讲,TCP/IP 由四个层次组成:网络接口层、网络层、传输层、运用层。OSI 是
传统的开放式系统互连参考模型,该模型将 TCP/IP 分为七层: 物理层、数据链路层(网络接口
层)、网络层(网络层)、传输层(传输层)、会话层、表示层和运用层(运用层)。TCP/IP 模型
与 OSI 模型比拟如表 60.1.2.1 所示。
表 60.1.2.1 TCP/IP 模型与 OSI 模型比拟
详细一点理解,本例程中的:PHY 层芯片 LAN8720A 相称于物理层,STM32F407 自带的
MAC 层相称于数据链路层,而 LWIP 供应的便是网络层、传输层的功能,运用层是须要用户自
己根据自己想要的功能去实现的。
2,LWIP 简介
LWIP是瑞典打算机科学院(SICS)的Adam Dunkels 等开拓的一个小型开源的TCP/IP 协议栈,
是 TCP/IP 的一种实现办法。LWIP 是轻量级 IP 协议,有无操作系统的支持都可以运行,LWIP
实现的重点是在保持 TCP 协议紧张功能的根本上减少对 RAM 的占用,它只需十几 KB 的 RAM
和 40K 旁边的 ROM 就可以运行,这使 LWIP 协议栈适宜在低真个嵌入式系统中利用。 目前
LWIP 的最新版本是 1.4.1。本教程采取的便是 1.4.1 版本的 LWIP。
关于LWIP的详细信息大家可以去http://savannah.nongnu.org/projects/lwip/这个网站去查阅,
LWIP 的紧张特性如下:
⚫ ARP 协议,以太网地址解析协议;
⚫ IP 协议,包括 IPv4 和 IPv6,支持 IP 分片与重装,支持多网络接口下数据转发;
⚫ ICMP 协议,用于网络调试与掩护;
⚫ IGMP 协议,用于网络组管理,可以实现多播数据的吸收;
⚫ UDP 协议,用户数据报协议;
⚫ TCP 协议,支持 TCP 拥塞掌握,RTT 估计,快速规复与重传等;
⚫ 供应三种用户编程接口办法:raw/callback API、sequential API、BSD-style socket API;
⚫ DNS,域名解析;
⚫ SNMP,大略网络管理协议;
⚫ DHCP,动态主机配置协议;
⚫ AUTOIP,IP 地址自动配置;
⚫ PPP,点对点协议,支持 PPPoE
我们从 LWIP 官网高下载 LWIP 1.4.1 版本,打开后如图 60.1.2.1 所示。
图 60.1.2.1 LWIP 1.4.1 源码内容
打开从官网高下载下来的 LWIP1.4.1 个中包括 doc,src 和 test 三个文件夹和 5 个其他文件。
doc 文件夹下包含了几个与协议栈利用干系的文本文档,doc 文件夹里面有两个比较主要的文
档:rawapi.txt 和 sys_arch.txt。
rawapi.txt 见告读者怎么利用 raw/callback API 进行编程,sys_arch.txt 包含了移植解释,在
移植的时候会用到。src 文件夹是我们的重点,里面包含了 LWIP 的源码。test 是 LWIP 供应的
一些测试程序,方便大家利用 LWIP。打开 src 源码文件夹,如图 60.1.2.2 所示:
图 60.1.2.1 LWIP src 文件夹内容
src 文件夹由 4 个文件夹组成:api、core、include、netif 四个文件夹。api 文件夹里面是 LWIP
的 sequential API(Netconn)和 socket API 两种接口函数的源码,要利用这两种 API 须要操作系统
支持。core 文件夹是 LWIP 内核源码,实现了各种协议支持,include 文件夹里面是 LWIP 利用
到的头文件,netif 文件夹里面是与网络底层接口有关的文件。
关于 LWIP 的移植,请参考:ALIENTEK STM32F4 LWIP 利用教程.pdf(文档路径:光盘
→6,软件资料→LWIP 学习资料)第一章,该文档详细先容了 LWIP 在 STM32F4 上面的移植。
这里我们就不详细先容了。
60.2 硬件设计
本节实验功能简介:开机后,程序初始化 LWIP,包括:初始化 LAN8720A、申请内存、
开启 DHCP 做事、添加并打开网卡,然后等待 DHCP 获取 IP 成功,当 DHCP 获取成功后,将
在 LCD 屏幕上显示 DHCP 得到的 IP 地址,如果 DHCP 获取失落败,那么将利用静态 IP(固定
为:192.168.1.30),然后开启 Web Server 做事,并进入主循环,等待按键输入选择须要测
试的功能:
KEY0 按键,用于选择 TCP Server 测试功能。
KEY1 按键,用于选择 TCP Client 测试功能
KEY2 按键,用于选择 UDP 测试功能
TCP Server 测试的时候,直策应用 DHCP 获取到的 IP(DHCP 失落败,则利用静态 IP)作
为做事器地址,端口号固定为:8088。在电脑端,可以利用网络调试助手(TCP Client 模式)
连接开拓板,连接成功后,屏幕显示连接上的 Client 的 IP 地址,此时便可以相互发送数据了。
按 KEY0 发送数据给电脑,电脑端发送过来的数据将会显示在 LCD 屏幕上。按 KEY_UP 可以
退出 TCP Server 测试。
TCP Client 测试的时候,先通过 KEY0/KEY2 来设置远端 IP 地址(Server 的 IP),端口
号固定为:8087。设置好之后,通过 KEY_UP 确认,随后,开拓板会不断考试测验连接到所设置
的远端 IP 地址(端口:8087),此时我们须要在电脑端利用网络调试助手(TCP Server 模式),
设置端口为:8087,开启 TCP Server 做事,等待开拓板连接。当连接成功后,测试方法同 TCP
Server 测试的方法一样。
UDP 测试的时候,同 TCP Client 测试险些千篇一律,先通过 KEY0/KEY2 设置远端 IP 地
址(电脑真个 IP),端口号固定为:8089,然后按 KEY_UP 确认。电脑端利用网络调试助手
(UDP 模式),设置端口为:8089,开启 UDP 做事。不过对付 UDP 通信,我们得先按开拓
板 KEY0,发送一次数据给电脑,随后才可以电脑发送数据给开拓板,实现数据互发。按 KEY_UP
可以退出 UDP 测试。
Web Server 的测试相对大略,只须要在浏览器端输入开拓板的 IP 地址(DHCP 获取到的
IP 地址或者 DHCP 失落败时利用的静态 IP 地址),即可登录一个 Web 界面,在 Web 界面,可
以实现对 DS1(LED1)的掌握、蜂鸣器的掌握、查看 ADC1 通道 5 的值、内部温度传感器温度
值以及查看 RTC 韶光和日期等。
DS0 用于提示程序正在运行。
本例程所要用到的硬件资源如下:
1) 指示灯 DS0 、DS1
2) 四个按键(KEY0/KEY1/KEY2/KEY_UP)
3) 串口
4) TFTLCD 模块
5) ETH(STM32F4 自带以太网功能)
6) LAN8720A
这几个部分我们都已经详细先容过了。本实验测试,需自备网线一根,路由器一个。
60.3 软件设计
本章,我们综合了《STM32F4 LWIP 开拓手册.pdf》这个文档里面的 4 个 LWIP 根本例程:
UDP 实验、TCP 客户端(TCP Client)实验、TCP 做事器(TCP Server)实验和 Web Server 实
验。这些实验测试代码在工程 LWIP→lwip_app 文件夹下,如图 60.3.1 所示:
图 60.3.1 LWIP 文件夹内容
这里面统共 4 个文件夹:lwip_comm 文件夹,存放了 ALIENTEK 供应的 LWIP 扩展支持代
码,方便利用和配置 LWIP,其他四个文件夹,则分别存放了 TCP Client、TCP Server、UDP 和
Web Server测试 demo程序。这里我们就不详细先容这些内容了,详细的先容,请参考:
《STM32F4
LWIP 开拓手册.pdf》这个文档。本例程工程构造如图 60.3.2 所示:
图 60.3.2 例程工程构造体
本章例程所实现的功能,全部由 LWIP_APP 组下的几个.c 文件实现,这些文件的详细先容
在:ALIENTEK STM32F4 LWIP 利用教程.pdf 里面,请大家参考该文档学习。
其他部分代码我们就不详细先容了,末了,我们来看看 main.c 里面的代码,如下:
//加载 UI//mode://bit0:0,不加载;1,加载前半部分 UI//bit1:0,不加载;1,加载后半部分 UIvoid lwip_test_ui(u8 mode){u8 speed; u8 buf[30];POINT_COLOR=RED;if(mode&1<<0){LCD_Fill(30,30,lcddev.width,110,WHITE); //打消显示LCD_ShowString(30,30,200,16,16,"Explorer STM32F4");LCD_ShowString(30,50,200,16,16,"Ethernet lwIP Test");LCD_ShowString(30,70,200,16,16,"ATOM@ALIENTEK");LCD_ShowString(30,90,200,16,16,"2014/8/15");}if(mode&1<<1){LCD_Fill(30,110,lcddev.width,lcddev.height,WHITE);//打消显示LCD_ShowString(30,110,200,16,16,"lwIP Init Successed");if(lwipdev.dhcpstatus==2)sprintf((char)buf,"DHCP IP:%d.%d.%d.%d",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);//IP 地址else sprintf((char)buf,"Static IP:%d.%d.%d.%d",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);//打印静态 IP 地址LCD_ShowString(30,130,210,16,16,buf);speed=LAN8720_Get_Speed();//得到网速if(speed&1<<1)LCD_ShowString(30,150,200,16,16,"Ethernet Speed:100M");else LCD_ShowString(30,150,200,16,16,"Ethernet Speed:10M");LCD_ShowString(30,170,200,16,16,"KEY0:TCP Server Test");LCD_ShowString(30,190,200,16,16,"KEY1:TCP Client Test");LCD_ShowString(30,210,200,16,16,"KEY2:UDP Test");}}int main(void){u8 t; u8 key;HAL_Init();//初始化 HAL 库 Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhzdelay_init(168);//初始化延时函数uart_init(115200);//初始化 USARTusmart_dev.init(84);//初始化 USMARTLED_Init();//初始化 LEDBEEP_Init();//初始化蜂鸣器KEY_Init();//初始化 KEYLCD_Init(); //初始化 LCDSRAM_Init();//初始化外部 SRAMMY_ADC_Init();//初始化 ADCRTC_Init(); //初始化 RTC TIM3_Init(1000-1,840-1);//定时器 3 初始化,周期 10msmy_mem_init(SRAMIN);//初始化内部内存池my_mem_init(SRAMEX);//初始化外部内存池my_mem_init(SRAMCCM);//初始化 CCM 内存池POINT_COLOR=RED;//赤色字体lwip_test_ui(1);//加载前半部分 UI//先初始化 lwIP(包括 LAN8720A 初始化),此时必须插上网线,否则初始化会失落败!!LCD_ShowString(30,110,200,16,16,"lwIP Initing...");while(lwip_comm_init()!=0){LCD_ShowString(30,110,200,16,16,"lwIP Init failed!");delay_ms(1200);LCD_Fill(30,110,230,110+16,WHITE);//打消显示LCD_ShowString(30,110,200,16,16,"Retrying...");}LCD_ShowString(30,110,200,16,16,"lwIP Init Successed");//等待 DHCP 获取LCD_ShowString(30,130,200,16,16,"DHCP IP configing...");while((lwipdev.dhcpstatus!=2)&&(lwipdev.dhcpstatus!=0XFF))//等待 DHCP 成功/超时{lwip_periodic_handle();}lwip_test_ui(2);//加载后半部分 UIhttpd_init(); //HTTP 初始化(默认开启 websever)while(1){key=KEY_Scan(0);switch(key){case KEY0_PRES://TCP Server 模式tcp_server_test();lwip_test_ui(3);//重新加载 UIbreak;case KEY1_PRES://TCP Client 模式tcp_client_test();lwip_test_ui(3);//重新加载 UIbreak;case KEY2_PRES://UDP 模式udp_demo_test();lwip_test_ui(3);//重新加载 UIbreak;}lwip_periodic_handle();delay_ms(2);t++;if(t==100)LCD_ShowString(30,230,200,16,16,"Please choose a mode!");if(t==200){t=0;LCD_Fill(30,230,230,230+16,WHITE);//打消显示LED0=!LED0;}}}
这里,我们开启了定时器 3,来给 LWIP 供应时钟,然后通过 lwip_comm_init 函数,初始
化 LWIP,该函数处理包括:初始化 STM32F4 的以太网外设、初始化 LAN8720A、分配内存、
使能 DHCP、添加并打开网卡等操作。
这里特殊把稳:由于我们配置 STM32F4 的网卡利用自动协商功能(双工模式和连接速率),
如果协商过程中碰着问题,则会进行多次重试,须要等待良久,而且如果协商失落败,那么直接
返回缺点,导致 LWIP 初始化失落败,因此一定要插上网线,然后 LWIP 才能初始化成功,否则
肯定会初始化失落败,而这个失落败,不是硬件问题,是由于你没插网线的缘故!
!
!
在 LWIP 初始化成功后,进入 DHCP 获取 IP 状态,当 DHCP 获取成功后,显示开拓板获
取到的 IP 地址,然后开启 HTTP 做事。此时可以在浏览器输入开拓板 IP 地址,登录 Web 掌握
界面,进行 Web Server 测试。
在主循环里面,我们可以通过按键选择:TCP Server 测试、TCP Client 测试和 UDP 测试等
测试项目,主循环还调用了 lwip_periodic_handle 函数,周期性处理 LWIP 事务。
软件设计部分就为大家先容到这里。
60.4 下载验证
在开始测试之前,我们先用网线(需自备)将开拓板和电脑连接起来。
对付有路由器的用户,直接用网线连接路由器,同时电脑也连接路由器,即可完成电脑与
开拓板的连接设置。
对付没有路由器的用户,则直接用网线连接电脑的网口,然后设置电脑确当地连接属性,
如图 60.4.1 所示:
图 60.4.1 开拓板与电脑直连时电脑本地连接属性设置
这里,我们设置 IPV4 的属性,设置 IP 地址为:192.168.1.100(100 是可以随意设置的,但
是不能是 30 和 1);子网掩码:255.255.255.0;网关:192.168.1.1;DNS 部分可以不用设置。
设置完后,点击确定,即可完成电脑端设置,这样开拓板和电脑就可以通过相互通信了。
然后,在代码编译成功之后,我们通过下载代码到探索者 STM32F4 开拓板上(这里我们
以路由器连接办法先容,下同,且假设 DHCP 获取 IP 成功),LCD 显示如图 60.4.2 所示界面:
图 60.4.2 DHCP 获取 IP 成功
此时屏幕提示选择测试模式,可以选择 TCP Server、TCP Client 和 UDP 三项测试。不过,
我们先来看看网络连接是否正常。从 60.4.2 可以看到,我们开拓板通过 DHCP 获取到的 IP 地
址为:192.168.1.105,因此,我们在电脑上先来 ping 一下这个 IP,看看能否 ping 通,以检讨连
接是否正常(Start→运行→CMD),如图 60.4.3 所示:
图 60.4.3 ping 开拓板 IP 地址
可以看到开拓板所显示的 IP 地址,是可以 ping 通的,解释我们的开拓板和电脑连接正常,
可以开始后续测试了。
60.4.1 Web Server 测试
这个测试不须要任何操作来开启,开拓板在获取 IP 成功(也可以利用静态 IP)后,即开
启了 Web Server 功能。我们在浏览器输入:192.168.1.105(开拓板显示的 IP 地址),即可进入
一个 Web 界面,如图 60.4.1.1 所示:
图 60.4.1.1 Web Server 测试网页
该界面统共有 5 个子页面:主页、LED/BEEP 掌握、ADC/内部温度传感器、RTC 实时时钟
和联系我们等。登录 Web 时默认打开的是主页面,先容了我们探索者 STM32F4 开拓板的一些
资源和特点和 LWIP 的一些简介。
点击:LED/BEEP 掌握,进入该子页面,即可对开拓板板载的 DS0(LED1)和蜂鸣器进行
掌握,如图 60.4.1.2 所示:
图 60.4.1.2 LED/BEEP 掌握页面
此时,选择 ON,然后点击 SEND 按钮,即可点亮 LED1 或者打开蜂鸣器。同样,发送 OFF
即可关闭 LED1 或蜂鸣器。
点击:ADC/内部温度传感器,进入该子页面,会显示 ADC1 通道 5 的值和 STM32 内部温
度传感器所测得的温度,如图 60.4.1.3 所示:
图 60.4.1.3 ADC/内部温度传感器测试页面
ADC1_CH5 是我们开拓板多功能接口 ADC 的输入通道,默认连接在 TPAD 上,TPAD 带
有上拉电阻,以是这里显示 3V 多,大家可以将 ADC 接其他地方来丈量电压。同时,该界面还
显示了内部温度传感器采集到的温度值。该界面每个一秒钟刷新一次。
点击:RTC 实时时钟,进入该子页面,会显示 STM32 内部 RTC 的韶光和日期,如图 60.4.1.4
所示:
图 60.4.1.4 RTC 实时时钟测试页面
此界面显示了探索者 STM32F4 自带的 RTC 实时时钟确当前韶光和日期等参数,每隔 1 秒
钟刷新一次。
末了,点击联系我们,即可进入到 ALIENTEK 官方店铺,这里就不再先容了。
60.4.2 TCP Server 测试
在提示界面,按 KEY0 即可进入 TCP Server 测试,此时,开拓板作为 TCP Server。此时,
LCD 屏幕上显示 Server IP 地址(便是开拓板的 IP 地址),Server 端口固定为:8088。如图 60.4.2.1
所示:
图 60.4.2.1 TCP Sever 测试界面
图中显示了 Server IP 地址是 192.168.1.105,Server 端口号是:8088。上位机合营我们测试,
须要用到一个网络调试助手的软件,该软件在光盘→ 6,软件资料→软件→网络调试助手→网
络调试助手 V3.8.exe。
我们在电脑端打开网络调试助手,设置协议类型为:TCP Client,做事器 IP 地址为:
192.168.1.105,做事器端口号为:8088,然后点击连接,即可连上开拓板的 TCP Sever,此时,
开拓板的液晶显示:Client IP:192.168.1.101(电脑的 IP 地址),如图 60.4.2.1 所示,而网络调试
助手端则显示连接成功,如图 60.4.2.2 所示:
图 60.4.2.2 电脑端网络调试助手 TCP Client 测试界面
按开拓板的 KEY0 按键,即可发送数据给电脑。同样,电脑端输入数据,也可以通过网络
调试助手发送给开拓板。如图 60.4.2.1 和图 60.4.2.2 所示。按 KEY_UP 按键,可以退出 TCP Sever
测试,返回选择界面。
60.4.3 TCP Client 测试
在提示界面,按 KEY1 即可进入 TCP Client 测试,此时,前辈入一个远端 IP 设置界面,也
便是 Client 要去连接的 Server 真个 IP 地址。通过 KEY0/KEY2 可以设置 IP 地址,通过 60.4.3.2
节的测试,我们知道电脑的 IP 是 192.168.1.101,以是我们这里设置 Client 要连接的远端 IP 为
192.168.1.101,如图 60.4.3.1 所示:
图 60.4.3.1 远端 IP 地址设置
设置好之后,按 KEY_UP,确认,进入 TCP Client 测试界面。开始的时候,屏幕显示
Disconnected。然后我们在电脑端打开网络调试助手,设置协议类型为:TCP Server,本地 IP
地址为:192.168.1.101(电脑 IP),本地端口号为:8087,然后点击连接,开启电脑真个 TCP Server
做事,如图 60.4.3.2 所示:
图 60.4.3.2 电脑端网络调试助手 TCP Server 测试界面
在电脑端开启 Server 后,稍等少焉,开拓板的 LCD 即显示 Connected,如图 60.4.3.3 所示:
图 60.4.3.3 TCP Client 测试界面
在连接成功后,电脑和开拓板即可互发数据,同样开拓板还是按 KEY0 发送数据给电脑,
测试结果如图 60.4.3.2 和图 60.4.3.3 所示。按 KEY_UP 按键,可以退出 TCP Client 测试,返回
选择界面。
60.4.4 UDP 测试
在提示界面,按 KEY2 即可进入 UDP 测试,UDP 测试同 TCP Client 测试一样,要先设置
远端 IP 地址,设置好之后,进入 UDP 测试界面,如图 60.4.4.1 所示:
图 60.4.4.1 UDP 测试界面
可以看到,UDP 测试时我们要连接的端口号为:8089,以是网络调试助手须要设置端口号
为:8089。其余,UDP 不是基于连接的传输协议,以是,这里直接就显示 Connected 了。在电
脑端打开网络调试助手,设置协议类型为:UDP,本地 IP 地址为:192.168.1.101(电脑 IP),
本地端口号为:8089,然后点击连接,开启电脑真个 UDP 做事,如图 60.4.4.2 所示:
图 60.4.4.2 电脑端网络调试助手 UDP 测试界面
然后,我们先按开拓板的 KEY0,发送一次数据给电脑端网络调试助手,这样电脑端网络
调试助手便会识别出开拓板的 IP 地址,然后就可以相互发送数据了。按 KEY_UP 按键,可以
退出 UDP 测试,返回选择界面。










