用户工具

站点工具


icore3_micropython_20
银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-07-01 gingko 初次建立

例程二十:【MicroPython】UDP通信实验

一、实验目的与意义

了解STM32的SPI和W5500的结构,使用MicroPython控制iCore3的以太网模块进行UDP通信。

二、实验设备及平台

  1. iCore3双核心板点击购买
  2. Micro USB线
  3. 电脑
  4. 网线
  5. TCP&UDP测试工具

三、实验原理

iCore3带有W5500嵌入式以太网控制器,本实验实现UDP通信功能。PC的IP地址为192.168.0.1,端口随机,iCore3的IP为192.168.0.2,端口号为60001。上电即可进行数据信息传输。原理示意图如下所示: 以太网硬件连接

四、实验步骤

  1. 用数据线将iCore3的USB-OTG口与电脑相连,将供电跳帽选择为OTG供电;
  2. 将代码包中的main.py文件替换到PYBFLASH磁盘中的main.py,弹出磁盘(必须!);
  3. 设置本机电脑IP;(方法见附录1)
  4. 打开TCP&UDP测试工具;(方法见附录2)
  5. 将iCore3网口通过网线连接到电脑网口;
  6. 将iCore3重新上电,代码运行;

五、实验现象

在发送区编辑完要发送的数据后,点击发送即可收到iCore3的回复信息,如下图所示: UDP通讯界面

六、实验程序

# -*- coding: utf-8-*-
# main.py -- put your code here!
import pyb, network, socket, _thread   #导入库
 
# 定义全局变量
server_socket = None  #服务器套接字
nic = None            #以太网对象
 
# UDP服务器初始化
def server_init():
    global server_socket, nic
    #创建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协议、UDP协议
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    server_socket.bind(('192.168.0.2',60001))  #设置服务器地址,端口号
 
# 服务器信息处理
def deal_with(id):
    global client_list
    while True:
        # 获取接收到的数据,,并解码
        data, addr = server_socket.recvfrom(1024)
        # 若数据不为空,则给客户端回复消息
        if len(data) > 0: 
            server_socket.sendto('iCore3 receive UDP data %s from %s.\n'%(data,addr),addr)
 
        pyb.delay(1)
 
# 初始化服务器
server_init()
# 创建服务器处理线程并开启,线程id号为1
_thread.start_new_thread(deal_with, (1,))

附录1:

1、打开设置,网络和Internet,更改适配器选项,以太网,属性; 2、Internet协议版本4,选择使用下面的IP地址,网络配置信息如下图所示:

附录2:

1、TCP&UDP测试工具安装 双击TCPUDPDebug102_Setup.exe,点击下一步,在这里安装路径我们默认即可,点击安装,然后点击Finish完成安装。

2、TCP&UDP测试工具的使用

(1)打开测试工具,界面如下,点击创建连接,在弹出的设置窗口中,我们设置类型为TCP,目标服务器ip为192.168.0.2,端口号为60001,点击创建。

(2)点击连接按钮,连接到TCP服务器,在发送区编辑消息,点击发送,即可接收到TCP服务器返回的消息。

(3)iCore3客户端上电启动后主动连接服务器,即可进行通信。(若连接不上请检查网线连接,禁用无线网卡,关闭电脑防火墙)

icore3_micropython_20.txt · 最后更改: 2022/03/18 15:36 由 sean