完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1)实验平台:alientek 阿波罗 STM32F767 开发板
2)摘自《STM32F7 开发指南(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子 第六十六章 网络通信实验 本章,我们将向大家介绍阿波罗 STM32F767 开发板的网口及其使用。本章,我们将使用 ALIENTEK 阿波罗 STM32F767 开发板自带的网口和 LWIP 实现:TCP 服务器、TCP 客服端、 UDP 以及 WEB 服务器等四个功能。本章分为如下几个部分: 66.1 STM32F767 以太网以及 TCP/IP LWIP 简介 66.2 硬件设计 66.3 软件设计 66.4 下载验证 66.1 STM32F767 以太网以及 TCP/IP LWIP 简介 本章,我们需要用到 STM32F767 的以太网控制器和 LWIP TCP/IP 协议栈。接下来分别介 绍这两个部分。 66.1.1 STM32F767 以太网简介 STM32F767 芯片自带以太网模块,该模块包括带专用 DMA 控制器的 MAC 802.3(介质访 问控制)控制器,支持介质独立接口 (MII) 和简化介质独立接口 (RMII),并自带了一个用于 外部 PHY 通信的 SMI 接口,通过一组配置寄存器,用户可以为 MAC 控制器和 DMA 控制器选 择所需模式和功能。 STM32F767 自带以太网模块特点包括: 支持外部 PHY 接口,实现 10M/100Mbit/s 的数据传输速率 通过符合 IEEE802.3 的 MII/RMII 接口与外部以太网 PHY 进行通信 支持全双工和半双工操作 可编程帧长度,支持高达 16KB 巨型帧 可编程帧间隔(40~96 位时间,以 8 为步长) 支持多种灵活的地址过滤模式 通过 SMI(MDIO)接口配置和管理 PHY 设备 支持以太网时间戳(参见 IEEE1588-2008),提供 64 位时间戳 提供接收和发送两组 FIFO。 支持 DMA STM32F767 以太网功能框图如图 66.1.1.1 所示: 图 66.1.1.1 STM32F767 以太网框图 从上图可以看出,STM32F767 是必须外接 PHY 芯片,才可以完成以太网通信的,外部 PHY 芯片可以通过 MII/RMII 接口与 STM32F767 内部 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 层进行数据传输。STM32F767 通过 MII 与 PHY 层芯片的连接如图 66.1.1.2 所示。 图 66.1.1.2 MII 接口信号 MII_TX_CLK:连续时钟信号。该信号提供进行 TX 数据传输时的参考时序。标称频率为: 速率为 10 Mbit/s 时为 2.5 MHz;速率为 100 Mbit/s 时为 25 MHz。 MII_RX_CLK:连续时钟信号。该信号提供进行 RX 数据传输时的参考时序。标称频率为: 速率为 10 Mbit/s 时为 2.5 MHz;速率为 100 Mbit/s 时为 25 MHz。 MII_TX_EN:发送使能信号。 MII_TXD[3:0]:数据发送信号。该信号是 4 个一组的数据信号, MII_CRS:载波侦听信号。 MII_COL:冲突检测信号。 MII_RXD[3:0]:数据接收信号。该信号是 4 个一组的数据信号 MII_RX_DV:接收数据有效信号。 MII_RX_ER:接收错误信号。该信号必须保持一个或多个周期(MII_RX_CLK),从而向 MAC 子层指示在帧的某处检测到错误。 RMII 接口,即精简介质独立接口,该接口降低了在 10/100 Mbit/s 下微控制器以太网外设与 外部 PHY 间的引脚数。根据 IEEE 802.3u 标准,MII 包括 16 个数据和控制信号的引脚。RMII 规范将引脚数减少为 7 个。 RMII 接口是 MAC 和 PHY 之间的实例化对象。这有助于将 MAC 的 MII 转换为 RMII。 RMII 具有以下特性: 1,支持 10Mbit/s 和 100Mbit/s 的运行速率 2,参考时钟必须是 50 MHz 3,相同的参考时钟必须从外部提供给 MAC 和外部以太网 PHY 4,它提供了独立的 2 位宽(双位)的发送和接收数据路径 STM32F767 通过 RMII 接口与 PHY 层芯片的连接如图 66.1.1.3 所示: 图 66.1.1.3 RMII 接口信号 从上图可以看出 RMII 相比 MII,引脚数量精简了不少。注意,图中的 REF_CLK 信号,是 RMII 和外部 PHY 共用的 50Mhz 参考时钟,必须由外部提供,比如有源晶振,或者 STM32F767 的 MCO 输出。不过有些 PHY 芯片可以自己产生 50Mhz 参考时钟,同时提供给 STM32F767, 这样也是可以的。 本章我们采用 RMII 接口和外部 PHY 芯片连接,实现网络通信功能,阿波罗 STM32F767 开 发板使用的是 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 功能框图如图 66.1.1.4 所示。 图 66.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 模式),用于给 STM32F767 的 RMII 提供 50Mhz 参考时钟。 3,1.2V 内部稳压器配置 LAN8720A 需要 1.2V 电压给 VDDCR 供电,不过芯片内部集成了 1.2V 稳压器,可以通过 LED1(REGOFF)来配置是否使用内部稳压器,当不使用内部稳压器的时候,必须外部提供 1.2V 电压给 VDDCR 引脚。这里我们使用内部稳压器,所以我们在 LED1 接下拉电阻(浮空也行, 内置了下拉电阻),以控制开启内部 1.2V 稳压器。 最后,我们来看下 LAN8720A 同我们阿波罗 STM32F767 开发板的连接关系,如图 66.1.1.5 所示: 图 66.1.1.5 LAN8720A 与 STM32F767IGT6 连接原理图 从上图可以看出,LAN8720A 总共通过 10 跟线同 STM32F767 连接,注意:ETH_MDIO 和 USART2_TX 共用、RMII_TX_EN 和 USART3_RX 共用,所以他们不能同时使用,使用时需 要注意这个问题。另外 LAN8720A 的 ETH_RESET 脚是连接在 PCF8574 的 P7 上面的(经过 Q1 取反),所以,使用网络功能的时候,必须配置 PCF8574 对 ETH_RESET 进行控制,才可以 正常运行。 66.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 模型对比如表 66.1.2.1 所示。 表 66.1.2.1 TCP/IP 模型与 OSI 模型对比 具体一点理解,本例程中的:PHY 层芯片 LAN8720A 相当于物理层,STM32F767 自带的 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 版本,打开后如图 66.1.2.1 所示。 图 66.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 源码文件夹,如图 66.1.2.2 所示: 图 66.1.2.2 LWIP src 文件夹内容 src 文件夹由 4 个文件夹组成:api、core、include、netif 四个文件夹。api 文件夹里面是 LWIP 的 sequential API(Netconn)和 socket API 两种接口函数的源码,要使用这两种 API 需要操作系统 支持。core 文件夹是 LWIP 内核源码,实现了各种协议支持,include 文件夹里面是 LWIP 使用 到的头文件,netif 文件夹里面是与网络底层接口有关的文件。 关于 LWIP 的移植,请参考:《STM32F767 LWIP 开发手册.pdf》(文档路径:光盘 A 盘 根目录)第一章,该文档详细介绍了 LWIP 在 STM32F767 上面的移植。这里我们就不详细介 绍了。 66.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) LCD 模块 5) ETH(STM32F767 自带以太网功能) 6) LAN8720A 7) PCF8574 这几个部分我们都已经详细介绍过了。本实验测试,需自备网线一根,路由器一个。 66.3 软件设计 本章,我们综合了 ALIENTEK《STM32F767 LWIP 开发手册.pdf》这个文档里面的 4 个 LWIP 基础例程:UDP 实验、TCP 客户端(TCP Client)实验、TCP 服务器(TCP Server)实验和 Web Server 实验。这些实验测试代码在工程 LWIPlwip_app 文件夹下,如图 66.3.1 所示: 图 66.3.1 LWIP 文件夹内容 这里面总共 4 个文件夹:lwip_comm 文件夹,存放了 ALIENTEK 提供的 LWIP 扩展支 持代码,方便使用和配置 LWIP,其他四个文件夹,则分别存放了 TCP Client、TCP Server、UDP 和 Web Server 测试 demo 程序。这里我们就不详细介绍这些内容了,详细的介绍,请参考: ALIENTEK《STM32F767 LWIP 开发手册.pdf》这个文档。本例程工程结构如图 66.3.2 所示: 图 66.3.2 例程工程结构体 本章例程所实现的功能,全部由 LWIP_APP 组下的几个.c 文件实现,这些文件的具体介绍 在:ALIENTEK 《STM32F767 LWIP 开发手册.pdf》里面,请大家参考该文档学习。 其他部分代码我们就不详细介绍了,最后,我们来看看 main.c 里面的代码,如下:
这里,我们开启了定时器 3 来给 LWIP 提供时钟,然后通过 lwip_comm_init 函数,初始化 LWIP, 该函数处理包括:初始化 STM32F767 的以太网外设、初始化 LAN8720A、分配内存、使能 DHCP、 添加并打开网卡等操作。 这里特别注意:因为我们配置 STM32F767 的网卡使用自动协商功能(双工模式和连接速 度),如果协商过程中遇到问题,则会进行多次重试,需要等待很久,而且如果协商失败,那么 直接返回错误,导致 LWIP 初始化失败,因此一定要插上网线,然后 LWIP 才能初始化成功, 否则肯定会初始化失败,而这个失败,不是硬件问题,是因为你没插网线的缘故!!! 在 LWIP 初始化成功后,进入 DHCP 获取 IP 状态,当 DHCP 获取成功后,显示开发板获 取到的 IP 地址,然后开启 HTTP 服务。此时可以在浏览器输入开发板 IP 地址,登录 Web 控制 界面,进行 Web Server 测试。 在主循环里面,我们可以通过按键选择:TCP Server 测试、TCP Client 测试和 UDP 测试等 测试项目,主循环还调用了 lwip_periodic_handle 函数,周期性处理 LWIP 事务。 软件设计部分就为大家介绍到这里。 66.4 下载验证 在开始测试之前,我们先用网线(需自备)将开发板和电脑连接起来。 对于有路由器的用户,直接用网线连接路由器,同时电脑也连接路由器,即可完成电脑与 开发板的连接设置。 对于没有路由器的用户,则直接用网线连接电脑的网口,然后设置电脑的本地连接属性, 如图 66.4.1 所示: 图 66.4.1 开发板与电脑直连时电脑本地连接属性设置 这里,我们设置 IPV4 的属性,设置 IP 地址为:192.168.1.100(100 是可以随意设置的,但 是不能是 30 和 1);子网掩码:255.255.255.0;网关:192.168.1.1;DNS 部分可以不用设置。 设置完后,点击确定,即可完成电脑端设置,这样开发板和电脑就可以通过互相通信了。 然后,在代码编译成功之后,我们通过下载代码到阿波罗 STM32 开发板上(这里我们以 路由器连接方式介绍,下同,且假设 DHCP 获取 IP 成功),LCD 显示如图 66.4.2 所示界面: 图 66.4.2 DHCP 获取 IP 成功 此时屏幕提示选择测试模式,可以选择 TCP Server、TCP Client 和 UDP 三项测试。不过, 我们先来看看网络连接是否正常。从 66.4.2 可以看到,我们开发板通过 DHCP 获取到的 IP 地 址为:192.168.1.137,因此,我们在电脑上先来 ping 一下这个 IP,看看能否 ping 通,以检查连 接是否正常(Start运行CMD),如图 66.4.3 所示: 图 66.4.3 ping 开发板 IP 地址 可以看到开发板所显示的 IP 地址,是可以 ping 通的,说明我们的开发板和电脑连接正常, 可以开始后续测试了。 66.4.1 Web Server 测试 这个测试不需要任何操作来开启,开发板在获取 IP 成功(也可以使用静态 IP)后,即开 启了 Web Server 功能。我们在浏览器输入:192.168.1.137(开发板显示的 IP 地址),即可进入 一个 Web 界面,如图 66.4.1.1 所示: 图 66.4.1.1 Web Server 测试网页 该界面总共有 5 个子页面:主页、LED/BEEP 控制、ADC/内部温度传感器、RTC 实时时钟 和联系我们等。登录 Web 时默认打开的是主页面,介绍了我们阿波罗 STM32F767 开发板的一 些资源和特点和 LWIP 的一些简介。 点击:LED/BEEP 控制,进入该子页面,即可对开发板板载的 DS0(LED1)和蜂鸣器进行 控制,如图 66.4.1.2 所示: 图 66.4.1.2 LED/BEEP 控制页面 此时,选择 ON,然后点击 SEND 按钮,即可点亮 LED1 或者打开蜂鸣器。同样,发送 OFF 即可关闭 LED1 或蜂鸣器。 点击:ADC/内部温度传感器,进入该子页面,会显示 ADC1 通道 5 的值和 STM32 内部温 度传感器所测得的温度,如图 66.4.1.3 所示: 图 66.4.1.3 ADC/内部温度传感器测试页面 ADC1_CH5 是我们开发板多功能接口 ADC 的输入通道,默认连接在 TPAD 上,TPAD 带 有上拉电阻,所以这里显示 3.3V 左右,大家可以将 ADC 接其他地方来测量电压。同时,该界 面还显示了内部温度传感器采集到的温度值。该界面每个一秒钟刷新一次。 点击:RTC 实时时钟,进入该子页面,会显示 STM32 内部 RTC 的时间和日期,如图 66.4.1.4 所示: 图 66.4.1.4 RTC 实时时钟测试页面 此界面显示了阿波罗 STM32F767 自带的 RTC 实时时钟的当前时间和日期等参数,每隔 1 秒钟刷新一次。 最后,点击联系我们,即可进入到 ALIENTEK 官方店铺,这里就不再介绍了。 66.4.2 TCP Server 测试 在提示界面,按 KEY0 即可进入 TCP Server 测试,此时,开发板作为 TCP Server。此时, LCD 屏幕上显示 Server IP 地址(就是开发板的 IP 地址),Server 端口固定为:8088。如图 66.4.2.1 所示: 图 66.4.2.1 TCP Sever 测试界面 图中显示了 Server IP 地址是 192.168.1.137,Server 端口号是:8088。上位机配合我们测试, 需要用到一个网络调试助手的软件,该软件在光盘 6,软件资料软件网络调试助手网 络调试助手 V3.8.exe。 我们在电脑端打开网络调试助手,设置协议类型为:TCP Client,服务器 IP 地址为: 192.168.1.137,服务器端口号为:8088,然后点击连接,即可连上开发板的 TCP Sever,此时, 开发板的液晶显示:Client IP:192.168.1.115(电脑的 IP 地址),如图 66.4.2.1 所示,而网络调试 助手端则显示连接成功,如图 6.4.2.2 所示: 图 66.4.2.2 电脑端网络调试助手 TCP Client 测试界面 按开发板的 KEY0 按键,即可发送数据给电脑。同样,电脑端输入数据,也可以通过网络 调试助手发送给开发板。如图 63.4.2.1 和图 66.4.2.2 所示。按 KEY_UP 按键,可以退出 TCP Sever 测试,返回选择界面。 66.4.3 TCP Client 测试 在提示界面,按 KEY1 即可进入 TCP Client 测试,此时,先进入一个远端 IP 设置界面,也 就是 Client 要去连接的 Server 端的 IP 地址。通过 KEY0/KEY2 可以设置 IP 地址,通过 66.4.3.2 节的测试,我们知道电脑的 IP 是 192.168.1.115,所以我们这里设置 Client 要连接的远端 IP 为 192.168.1.115,如图 66.4.3.1 所示: 图 66.4.3.1 远端 IP 地址设置 设置好之后,按 KEY_UP,确认,进入 TCP Client 测试界面。开始的时候,屏幕显示 Disconnected。然后我们在电脑端打开网络调试助手,设置协议类型为:TCP Server,本地 IP 地址为:192.168.1.115(电脑 IP),本地端口号为:8087,然后点击连接,开启电脑端的 TCP Server 服务,如图 66.4.3.2 所示: 图 66.4.3.2 电脑端网络调试助手 TCP Server 测试界面 在电脑端开启 Server 后,稍等片刻,开发板的 LCD 即显示 Connected,如图 66.4.3.3 所示: 图 66.4.3.3 TCP Client 测试界面 在连接成功后,电脑和开发板即可互发数据,同样开发板还是按 KEY0 发送数据给电脑, 测试结果如图 66.4.3.2 和图 66.4.3.3 所示。按 KEY_UP 按键,可以退出 TCP Client 测试,返回 选择界面。 66.4.4 UDP 测试 在提示界面,按 KEY2 即可进入 UDP 测试,UDP 测试同 TCP Client 测试一样,要先设置 远端 IP 地址,设置好之后,进入 UDP 测试界面,如图 66.4.4.1 所示: 图 66.4.4.1 UDP 测试界面 可以看到,UDP 测试时我们要连接的端口号为:8089,所以网络调试助手需要设置端口号 为:8089。另外,UDP 不是基于连接的传输协议,所以,这里直接就显示 Connected 了。在电 脑端打开网络调试助手,设置协议类型为:UDP,本地 IP 地址为:192.168.1.115(电脑 IP), 本地端口号为:8089,然后点击连接,开启电脑端的 UDP 服务,如图 66.4.4.2 所示: 图 66.4.3.2 电脑端网络调试助手 UDP 测试界面 然后,我们先按开发板的 KEY0,发送一次数据给电脑端网络调试助手,这样电脑端网络 调试助手便会识别出开发板的 IP 地址,然后就可以互相发送数据了。按 KEY_UP 按键,可以 退出 UDP 测试,返回选择界面。 |
|
相关推荐
|
|
991 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
970 浏览 2 评论
2080 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1177 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1599 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 18:37 , Processed in 0.673518 second(s), Total 64, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号