| **银杏科技有限公司旗下技术文档发布平台** |||| |技术支持电话|**0379-69926675-801**||| |技术支持邮件|Gingko@vip.163.com||| ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | V1.0 | 2020-07-01 | gingko | 初次建立 | ===== 例程十八:【MicroPython】TCP客户端实验 ===== ==== 一、实验目的与意义 ==== 了解STM32的SPI和W5500的结构,使用MicroPython控制iCore3的以太网模块连接TCP服务器。 ==== 二、实验设备及平台 ==== - iCore3双核心板[[https://item.taobao.com/item.htm?id=524229438677|点击购买]] - Micro USB线 - 电脑 - 网线 - TCP&UDP测试工具 ==== 三、实验原理 ==== iCore3带有W5500嵌入式以太网控制器,本实验实现TCP客户端功能。以PC作为服务器,iCore3作为客户端,PC的IP地址为192.168.0.1,端口号为60001,iCore3的IP为192.168.0.2,端口随机。当客户端连接到服务器,TCP建立成功即可进行数据信息传输。原理示意图如下所示: {{ :icore3:icore3_micropython_18_1.png?direct |以太网硬件连接}} ==== 四、实验步骤 ==== - 用数据线将iCore3的USB-OTG口与电脑相连,将供电跳帽选择为OTG供电; - 将代码包中的main.py文件替换到PYBFLASH磁盘中的main.py,弹出磁盘(必须!); - 设置本机电脑IP;(方法见附录1) - 打开TCP&UDP测试工具;(方法见附录2) - 将iCore3网口通过网线连接到电脑网口; - 将iCore3重新上电,代码运行; ==== 五、实验现象 ==== 在发送区编辑完要发送的数据后,点击发送即可收到iCore3的回复信息,如下图所示: {{ :icore3:icore3_micropython_18_2.png?direct |TCP通讯界面}} ==== 六、实验程序 ==== # -*- coding: utf-8-*- # main.py -- put your code here! import pyb, network, socket #导入库 #创建WIZNET5K对象,指定SPI,端口初始化,A15连接LAN_cs,G2连接LAN_INT nic = network.WIZNET5K(pyb.SPI(1), pyb.Pin('A15'), pyb.Pin('G2')) #设置iCore3的ip地址、子网掩码、网关、DNS服务器地址 nic.ifconfig(('192.168.0.2','255.255.255.0','192.168.0.1','192.168.0.1')) #创建新的套接字,使用ipv4协议、TCP协议 s = socket.socket() #连接服务器地址,端口号 s.connect(('192.168.0.1',60001)) while True: #向TCP服务器发送接收到的信息 data = s.recv(1024) #若消息不为空 if len(data) > 0: s.send('iCore3 receive %s from TCP server.\n'%data.decode('utf-8')) #关闭连接 s.close() 附录1: 1、打开设置,网络和Internet,更改适配器选项,以太网,属性; {{ :icore3:icore3_micropython_18_3.png?direct |}} 2、Internet协议版本4,选择使用下面的IP地址,网络配置信息如下图所示: {{ :icore3:icore3_micropython_18_4.png?direct |}} 附录2: 1、TCP&UDP测试工具安装 双击TCPUDPDebug102_Setup.exe,点击下一步,在这里安装路径我们默认即可,点击安装,然后点击Finish完成安装。 2、TCP&UDP测试工具的使用 (1)打开测试工具,界面如下,点击创建服务器,在弹出的端口设置窗口中,我们设置端口为60001。 {{ :icore3:icore3_micropython_18_5.png?direct |}} (2)服务器创建完成,点击启动服务器。 {{ :icore3:icore3_micropython_18_6.png?direct |}} (3)iCore3客户端上电启动后主动连接服务器,即可进行通信。(若连接不上请禁用无线网卡,关闭电脑防火墙)