找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2812|回复: 0
打印 上一主题 下一主题
收起左侧

w5500 UDP STM32程序

[复制链接]
跳转到指定楼层
楼主
ID:395466 发表于 2018-12-10 08:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
w5500 UDP程序,亲测可以用

单片机源程序如下:
  1. #include "mcu_init.h"
  2. #include "config.h"
  3. #include "device.h"
  4. #include "spi2.h"
  5. #include "socket.h"
  6. #include "w5500.h"
  7. #include "at24c16.h"
  8. #include "util.h"

  9. #include <stdio.h>

  10. extern uint8 txsize[];
  11. extern uint8 rxsize[];

  12. uint8 buffer[2048];/*定义一个2KB的缓存*/

  13. void main()
  14. {
  15.   uint8 pc_ip[4]={192,168,1,104};/*配置服务器的IP地址*/
  16.   uint16 pc_port=6001;/*定义计算机的一个端口并初始化*/
  17.   uint16 len=0;
  18.   uint8 rIP[4];
  19.   uint16 rPort;
  20.   uint8 mac[6]={0x00,0x08,0xdc,0x11,0x11,0x11};/*定义Mac变量*/
  21.   uint8 lip[4]={192,168,1,111};/*定义lp变量*/
  22.   uint8 sub[4]={255,255,255,0};/*定义subnet变量*/
  23.   uint8 gw[4]={192,168,1,1};/*定义gateway变量*/
  24.   uint8 ip[4];
  25.   uint8 test[10] = "test";
  26.   uint32 counter=0;
  27.   RCC_Configuration(); /* 配置单片机系统时钟*/
  28.   GPIO_Configuration();/* 配置GPIO*/
  29.   NVIC_Configuration();/* 配置嵌套中断向量*/
  30.   
  31.   Systick_Init(72);/* 初始化Systick工作时钟*/
  32.   USART1_Init(); /*初始化串口通信:115200@8-n-1*/
  33.   at24c16_init();/*初始化eeprom*/
  34.   printf("W5500 EVB initialization over.\r\n");
  35.   
  36.   Reset_W5500();/*硬重启W5500*/
  37.   WIZ_SPI_Init();/*初始化SPI接口*/
  38.   printf("W5500 initialized!\r\n");  

  39.   setSHAR(mac);/*配置Mac地址*/
  40.   setSUBR(sub);/*配置子网掩码*/
  41.   setGAR(gw);/*配置默认网关*/
  42.   setSIPR(lip);/*配置Ip地址*/
  43.   
  44.     //Init. TX & RX Memory size of w5500
  45.   sysinit(txsize, rxsize); /*初始化8个socket*/
  46.   
  47.   setRTR(2000);/*设置溢出时间值*/
  48.   setRCR(3);/*设置最大重新发送次数*/
  49.   

  50.   getSIPR (ip);
  51.   printf("IP : %d.%d.%d.%d\r\n", ip[0],ip[1],ip[2],ip[3]);
  52.   getSUBR(ip);
  53.   printf("SN : %d.%d.%d.%d\r\n", ip[0],ip[1],ip[2],ip[3]);
  54.   getGAR(ip);
  55.   printf("GW : %d.%d.%d.%d\r\n", ip[0],ip[1],ip[2],ip[3]);
  56.   printf("Network is ready.\r\n");
  57.   
  58.   while(1)
  59.   {
  60.     switch(getSn_SR(0))/*获取socket 0的状态*/
  61.       {
  62.          case SOCK_UDP:/*socket 的套接字初始化完成*/
  63.            //setSn_IR(0, Sn_IR_RECV);
  64.            counter++;
  65.            //sprintf(test, "test:%03d\r\n", counter);
  66.            //sendto(0, test,10, pc_ip, pc_port);
  67.            //Delay_ms(100);
  68.            if(getSn_IR(0) & Sn_IR_RECV)
  69.           {
  70.             setSn_IR(0, Sn_IR_RECV);/*Sn_IR的第0位置1*/
  71.           }
  72.            if((len=getSn_RX_RSR(0))>0)
  73.            {
  74. ……………………

  75. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
1-5 UDP.rar (497.92 KB, 下载次数: 61)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表