zoukankan      html  css  js  c++  java
  • W5500EVB TCP Client模式设置说明

    W5500EVB是WIZnet为了方便用户更好了解、使用W5500这款网络芯片所开发的评估板,该板採用了 STM32F103RCT6+W5500 的设计。基于 ARM Cortex-M3 平台。那么在实现网络通信的过程中,TCP通信模式为最经常使用,本教程就先为您介绍一下TCP Client模式是如何成功实现的。

    一、程序烧录

    1. 程序改动

    打开IAR Embedded Workbench软件快捷方式,打开TCP Clientapp.eww文件。

    然后在main.c函数中改动例如以下图1所看到的的两个IP地址,而且确保调试PC的IP地址与改动内容在同一个网段内,否则无法建立连接。当中绿色框内主要设置PC的IP地址,红色框内主要设置W5500-EVB的IP地址。

     w5500_TCP_mode1

    图 1 编译界面

    改动正确以后,点击projectmake 或者按F7快捷键又一次编译文件。

    2. 设置烧录工具

    Flash loader Demonstrator 用于为W5500-EVB烧录程序,安装软件会出现如图2所看到的窗体。当mini-USB连接到PC的USB设备时,设备管理器会正确安装USB转串口驱动,Port Name 口会自己主动识别到相应的COM口。

    3. 程序下载

       如图3所看到的,红色框中。SW7是BOOT0按键,SW6是RESET按键。

    按下按键SW7不松开。同一时候点击SW6重新启动EVB板后,松开SW7。进入程序下载模式。

    在Flash loader Demonstrator中点击下一步,进入如图4所看到的界面;继续点击下一步出

    W5500_TCP_mode2

    图 2 烧录工具界面

    W5500_TCP_mode3

    图3  W5500-EVB实物图

    现如图5所看到的界面。

    W5500_TCP_mode4

    图 4                              图5

    再次点击下一步进入目标文件烧录界面,如图6所看到的。

    W5500_TCP_mode6

    图6  目标文件烧录界面

    蓝色框内选择TCP ClientDebugExeapp.bin文件,红色框内选择Global Eras全然擦除,设置完毕后点击下一步開始下载。如图7所看到的。

    W5500_TCP_mode7

    图7 程序下载过程界面

    二、測试链接

    1. 设置PC为静态IP

       打开网络连接,点击本地连接选择属性。出现如图8所看到的设置界面。设置完毕后点击确定。

    W5500_TCP_mode8

    图8 PC静态IP设置

    2. 通过hercules连接測试

    用网线把PC和W5500EVB连接,打开hercules软件,选择正确的COM口打开串口,按一下SW6复位按键,会显示W5500EVB设置好的信息如图9所看到的。

     W5500_TCP_mode9

    图 9 hercules开启界面

    然后点击TCP Server,在Port口输入6001(6001在主程序),点击Listen,就能够进行传输数据測试,測试效果如图10所看到的。在蓝色框中任意输入数字或者字符。点击send,就会看到红色框内有数据接收到。说明连接成功。

    W5500_TCP_mode10

    图 10 数据收发測试

    程序大致流程例如以下:

    1. 初始化,包含系统时钟、中断、串口、GPIOport、Systick时、eeprom等

    2. 重新启动W5500

    3. 系统设置,包含IP地址、网关、子网掩码、MAC地址等

     

    4. 连接模式选择(通过switch选择语句实现)

    A .推断Socket状态

    B. 假设Socket关闭。打开一个port

    C. Socket初始化,建立连接

    D. 假设连接成功。进行数据收发

    模式选择主要通过下面函数以及硬件SPI模式的基本函数来实现。

    uint8 getSn_SR(SOCKET s)

    {

    return IINCHIP_READ(Sn_SR(s));

    }

    uint8 IINCHIP_READ(uint32 addrbsb)

    {

    uint8 data = 0;

    IINCHIP_ISR_DISABLE();                        // Interrupt Service Routine Disable

    IINCHIP_CSoff();                              // CS=0, SPI start

    IINCHIP_SpiSendData( (addrbsb & 0x00FF0000)>>16);// Address byte 1

    IINCHIP_SpiSendData( (addrbsb & 0x0000FF00)>> 8);// Address byte 2

    IINCHIP_SpiSendData( (addrbsb & 0x000000F8))    ;// Data read command and Read data length 1

    data = IINCHIP_SpiSendData(0×00);             // Data read (read 1byte data)

    IINCHIP_CSon();                               // CS=1,  SPI end

    IINCHIP_ISR_ENABLE();                         // Interrupt Service Routine Enable

    return data;    }

     

    与我们很多其它交流:

    WIZnet中文官方站点: http://www.iwiznet.cn

    WIZnet企业官方微博:http://weibo.com/wiznet2012

    WIZnet-Makerspace博物馆:http://wiznet.makerspace.com


  • 相关阅读:
    C语言第二次实验报告
    C语言第一次实验报告
    java远程开关机
    html5 总结
    css media 媒体查询
    移动端适配rem
    判断Android系统和iPhone系统 QQ游览器 微信
    原生javascript 选项卡封装
    浅谈坐标系以及之间的转换
    百度地图开发的学习(二)——地图定位
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5094556.html
Copyright © 2011-2022 走看看