久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5894|回復: 9
收起左側

W5500資料與單片機源碼(UDP,服務端,客戶端模式)

  [復制鏈接]
ID:332794 發表于 2018-5-18 10:57 | 顯示全部樓層 |閱讀模式
W5500網絡模塊相關資料及51單片機和STM32應用程序的資料,STM32的程序資料太大無法添加到附件,如有需要可聯系題主。
0.jpg

UDP模式例程:

* 描述    :W5500的端口0工作在客戶端模式,主動與《TCP&UDP測試工具》上創建的服務端連接,
*             并且定時給服務端發送字符串"\r\nWelcome To YiXinElec!\r\n",同時將接
*             收到服務端發來的數據回發給服務端。
* 實驗平臺:用戶51單片機開發板 + YIXIN_W5500以太網(TCP/IP)模塊
* 硬件連接:  P3^2 -> W5500_RST   
*             P3^3 -> W5500_INT(本例程沒有用到中斷,此引腳可以不接)     
*             P3^6 -> W5500_SCS      
*             P3^7 -> W5500_SCK   
*             P3^4 -> W5500_MISO   
*             P3^5 -> W5500_MOSI  

---------------------------------------------------------------------

* 描述    :W5500的端口0工作在UDP模式,端口通信不需要建立連接即可接收其它UDP模式端口發來的數據,
*             數據的前4個字節為對方端口IP地址,第5、6個字節為端口號,獲得對方IP和端口號后W5500端口0
*             將定時給對應端口發送字符串"\r\nWelcome To YiXinElec!\r\n",同時將接收
*             到的數據回發給對應端口。
* 實驗平臺:用戶51單片機開發板 + YIXIN_W5500以太網(TCP/IP)模塊
* 硬件連接:  P3^2 -> W5500_RST   
*             P3^3 -> W5500_INT(本例程沒有用到中斷,此引腳可以不接)     
*             P3^6 -> W5500_SCS      
*             P3^7 -> W5500_SCK   
*             P3^4 -> W5500_MISO   
*             P3^5 -> W5500_MOSI  


服務端模式單片機源程序如下:
  1. /***************************************************************************************
  2. * 描述    :W5500的端口0工作在服務端模式:等待《TCP&UDP測試工具》上創建的客戶端主動與服務端連接,
  3. *                         連接成功后,服務端定時給客戶端發送字符串"\r\nWelcome To YiXinElec!\r\n",
  4. *                         同時將接收到客戶端發來的數據回發給客戶端。
  5. * 實驗平臺:用戶51單片機開發板 + YIXIN_W5500以太網(TCP/IP)模塊
  6. * 硬件連接:  P3^2 -> W5500_RST   
  7. *             P3^3 -> W5500_INT(本例程沒有用到中斷,此引腳可以不接)     
  8. *             P3^6 -> W5500_SCS      
  9. *             P3^7 -> W5500_SCK   
  10. *             P3^4 -> W5500_MISO   
  11. *             P3^5 -> W5500_MOSI   

  12. * 淘寶    :http://yixindianzikeji.taobao.com/
  13. ***************************************************************************************/

  14. /*例程網絡參數*/
  15. //網關:192.168.1.1
  16. //掩碼:        255.255.255.0
  17. //物理地址:0C 29 AB 7C 00 01
  18. //本機IP地址:192.168.1.199
  19. //端口0的端口號:5000
  20. //端口0的目的IP地址:192.168.1.190
  21. //端口0的目的端口號:6000

  22. #include <reg51.h>
  23. #include "W5500.h"                               
  24. #include <string.h>

  25. void Delay(unsigned int d);                        //延時函數(ms)

  26. /*******************************************************************************
  27. * 函數名  : W5500_Initialization
  28. * 描述    : W5500初始貨配置
  29. * 輸入    : 無
  30. * 輸出    : 無
  31. * 返回值  : 無
  32. * 說明    : 無
  33. *******************************************************************************/
  34. void W5500_Initialization(void)
  35. {
  36.         W5500_Init();                //初始化W5500寄存器函數
  37.         Detect_Gateway();        //檢查網關服務器
  38.         Socket_Init(0);                //指定Socket(0~7)初始化,初始化端口0
  39. }

  40. /*******************************************************************************
  41. * 函數名  : Load_Net_Parameters
  42. * 描述    : 裝載網絡參數
  43. * 輸入    : 無
  44. * 輸出    : 無
  45. * 返回值  : 無
  46. * 說明    : 網關、掩碼、物理地址、本機IP地址、端口號、目的IP地址、目的端口號、端口工作模式
  47. *******************************************************************************/
  48. void Load_Net_Parameters(void)
  49. {
  50.         Gateway_IP[0] = 192;//加載網關參數
  51.         Gateway_IP[1] = 168;
  52.         Gateway_IP[2] = 1;
  53.         Gateway_IP[3] = 1;

  54.         Sub_Mask[0]=255;//加載子網掩碼
  55.         Sub_Mask[1]=255;
  56.         Sub_Mask[2]=255;
  57.         Sub_Mask[3]=0;

  58.         Phy_Addr[0]=0x0c;//加載物理地址
  59.         Phy_Addr[1]=0x29;
  60.         Phy_Addr[2]=0xab;
  61.         Phy_Addr[3]=0x7c;
  62.         Phy_Addr[4]=0x00;
  63.         Phy_Addr[5]=0x01;

  64.         IP_Addr[0]=192;//加載本機IP地址
  65.         IP_Addr[1]=168;
  66.         IP_Addr[2]=1;
  67.         IP_Addr[3]=199;

  68.         S0_Port[0] = 0x13;//加載端口0的端口號5000
  69.         S0_Port[1] = 0x88;

  70. //        S0_DIP[0]=192;//加載端口0的目的IP地址
  71. //        S0_DIP[1]=168;
  72. //        S0_DIP[2]=1;
  73. //        S0_DIP[3]=190;
  74. //       
  75. //        S0_DPort[0] = 0x17;//加載端口0的目的端口號6000
  76. //        S0_DPort[1] = 0x70;

  77.         S0_Mode=TCP_SERVER;//加載端口0的工作模式,TCP服務端模式
  78. }

  79. /*******************************************************************************
  80. * 函數名  : W5500_Socket_Set
  81. * 描述    : W5500端口初始化配置
  82. * 輸入    : 無
  83. * 輸出    : 無
  84. * 返回值  : 無
  85. * 說明    : 分別設置4個端口,根據端口工作模式,將端口置于TCP服務器、TCP客戶端或UDP模式.
  86. *                        從端口狀態字節Socket_State可以判斷端口的工作情況
  87. *******************************************************************************/
  88. void W5500_Socket_Set(void)
  89. {
  90.         if(S0_State==0)//端口0初始化配置
  91.         {
  92.                 if(S0_Mode==TCP_SERVER)//TCP服務器模式
  93.                 {
  94.                         if(Socket_Listen(0)==TRUE)
  95.                                 S0_State=S_INIT;
  96.                         else
  97.                                 S0_State=0;
  98.                 }
  99.                 else if(S0_Mode==TCP_CLIENT)//TCP客戶端模式
  100.                 {
  101.                         if(Socket_Connect(0)==TRUE)
  102.                                 S0_State=S_INIT;
  103.                         else
  104.                                 S0_State=0;
  105.                 }
  106.                 else//UDP模式
  107.                 {
  108.                         if(Socket_UDP(0)==TRUE)
  109.                                 S0_State=S_INIT|S_CONN;
  110.                         else
  111.                                 S0_State=0;
  112.                 }
  113.         }
  114. }

  115. /*******************************************************************************
  116. * 函數名  : Process_Socket_Data
  117. * 描述    : W5500接收并發送接收到的數據
  118. * 輸入    : s:端口號
  119. * 輸出    : 無
  120. * 返回值  : 無
  121. * 說明    : 本過程先調用S_rx_process()從W5500的端口接收數據緩沖區讀取數據,
  122. *                        然后將讀取的數據從Rx_Buffer拷貝到Temp_Buffer緩沖區進行處理。
  123. *                        處理完畢,將數據從Temp_Buffer拷貝到Tx_Buffer緩沖區。調用S_tx_process()
  124. *                        發送數據。
  125. *******************************************************************************/
  126. void Process_Socket_Data(SOCKET s)
  127. {
  128.         unsigned short size;
  129.         size=Read_SOCK_Data_Buffer(s, Rx_Buffer);
  130.         memcpy(Tx_Buffer, Rx_Buffer, size);                       
  131.         Write_SOCK_Data_Buffer(s, Tx_Buffer, size);
  132. }

  133. /*******************************************************************************
  134. * 函數名  : main
  135. * 描述    : 主函數,用戶程序從main函數開始運行
  136. * 輸入    : 無
  137. * 輸出    : 無
  138. * 返回值  : int:返回值為一個16位整形數
  139. * 說明    : 無
  140. *******************************************************************************/
  141. int main(void)
  142. {
  143.         unsigned int W5500_Send_Delay_Counter =0;

  144.         Load_Net_Parameters();                //裝載網絡參數       
  145.         W5500_Hardware_Reset();                //硬件復位W5500
  146.         W5500_Initialization();                //W5500初始貨配置
  147.         while (1)
  148.         {
  149.                 W5500_Socket_Set();//W5500端口初始化配置
  150.                
  151.                 W5500_Interrupt_Process();//W5500中斷處理程序框架

  152.                 if((S0_Data & S_RECEIVE) == S_RECEIVE)//如果Socket0接收到數據
  153.                 {
  154.                         S0_Data&=~S_RECEIVE;
  155.                         Process_Socket_Data(0);//W5500接收并發送接收到的數據
  156.                 }
  157.                 else if(W5500_Send_Delay_Counter >= 3000)//定時發送字符串
  158.                 {
  159.                         if(S0_State == (S_INIT|S_CONN))
  160.                         {
  161.                                 S0_Data&=~S_TRANSMITOK;
  162.                                 memcpy(Tx_Buffer, "\r\nWelcome To YiXinElec!\r\n", 23);       
  163.                                 Write_SOCK_Data_Buffer(0, Tx_Buffer, 23);//指定Socket(0~7)發送數據處理,端口0發送23字節數據
  164. ……………………

  165. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
0.jpg
0.jpg

51單片機程序例程.rar

237.25 KB, 下載次數: 115, 下載積分: 黑幣 -5

W5500封裝庫.rar

6.63 KB, 下載次數: 44, 下載積分: 黑幣 -5

W5500開發官網資料.rar

13.02 MB, 下載次數: 98, 下載積分: 黑幣 -5

芯片資料.rar

2.22 MB, 下載次數: 55, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:316613 發表于 2019-7-25 15:45 | 顯示全部樓層
不錯 代碼好閱讀 簡介,好用 頂一個
回復

使用道具 舉報

ID:20672 發表于 2019-9-27 08:32 | 顯示全部樓層
謝謝分享~~
回復

使用道具 舉報

ID:101832 發表于 2020-6-6 16:22 | 顯示全部樓層
下載,試試咋樣,學習了。謝謝樓主資料
回復

使用道具 舉報

ID:101832 發表于 2020-6-6 16:34 | 顯示全部樓層
好東西,下載試試
回復

使用道具 舉報

ID:101832 發表于 2020-6-6 16:35 | 顯示全部樓層
不錯 代碼好閱讀 簡介,好用 頂一個
回復

使用道具 舉報

ID:900223 發表于 2021-4-3 10:43 | 顯示全部樓層
stc89c52+w5500模塊 單獨RST置0 硬件復位,但是網卡link燈不亮,是不是復位沒有成功,可能是什么問題?
回復

使用道具 舉報

ID:508359 發表于 2022-2-16 10:19 | 顯示全部樓層
不錯的代碼,謝謝了。
回復

使用道具 舉報

ID:995755 發表于 2022-3-8 15:30 | 顯示全部樓層
htiger189 發表于 2021-4-3 10:43
stc89c52+w5500模塊 單獨RST置0 硬件復位,但是網卡link燈不亮,是不是復位沒有成功,可能是什么問題?

我也遇到相同情況,目前還沒查出原因
回復

使用道具 舉報

ID:932719 發表于 2023-6-13 11:14 | 顯示全部樓層
請問有http的使用方法嘛?或者教程
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产高清 | 亚洲高清在线视频 | 亚洲经典一区 | 国产精品久久久久永久免费观看 | 中文字幕一区在线观看视频 | 二区在线视频 | 粉嫩粉嫩芽的虎白女18在线视频 | 欧美一区2区三区4区公司二百 | 亚洲国产精品人人爽夜夜爽 | 国产精品一区二区免费 | 中文字幕第一页在线 | 欧美午夜在线 | 一区二区视频在线 | 国产成人99久久亚洲综合精品 | 久久综合成人精品亚洲另类欧美 | 最新中文字幕在线 | 亚洲欧美国产视频 | 午夜免费网站 | 黄色一级大片在线免费看产 | 羞羞色影院 | 免费欧美视频 | 九九热re| 国产一区二区麻豆 | 亚洲男人网 | 91精品在线播放 | 嫩草视频在线看 | 男人的天堂在线视频 | 中文字幕福利视频 | 完全免费在线视频 | 欧美日韩免费 | 久久黄色网 | 91在线第一页 | 国产视频三级 | 成人免费在线播放视频 | 一区二区三区精品 | 欧美精品一二三区 | 欧洲国产精品视频 | 日本亚洲精品成人欧美一区 | 成人一区av| www.伊人.com | 日本一区二区三区精品视频 |