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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10458|回復: 9
打印 上一主題 下一主題
收起左側

W5500客戶端模式例程(51單片機源碼)

  [復制鏈接]
跳轉到指定樓層
樓主
單片機源程序如下:
  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. ***************************************************************************************/

  13. /*例程網絡參數*/
  14. //網關:192.168.1.1
  15. //掩碼:        255.255.255.0
  16. //物理地址:  30 9C 23 62 56 D1
  17. //本機IP地址:192.168.1.115
  18. //端口0的端口號:5000
  19. //端口0的目的IP地址:192.168.1.115
  20. //端口0的目的端口號:6000

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

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

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

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

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

  57. //Phy_Addr[0]=0x30;//加載物理地址
  58. //Phy_Addr[1]=0x9c;
  59. //Phy_Addr[2]=0x23;
  60. //Phy_Addr[3]=0x62;
  61. //Phy_Addr[4]=0x56;
  62. //Phy_Addr[5]=0xd1;
  63.                 Phy_Addr[0]=0x0c;//加載物理地址
  64.         Phy_Addr[1]=0x29;
  65.         Phy_Addr[2]=0xab;
  66.         Phy_Addr[3]=0x7c;
  67.         Phy_Addr[4]=0x00;
  68.         Phy_Addr[5]=0x01;

  69.         IP_Addr[0]=192;//加載本機IP地址
  70.         IP_Addr[1]=168;
  71.         IP_Addr[2]=1;
  72.         IP_Addr[3]=120;

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

  75.         S0_DIP[0]=192;//加載端口0的目的IP地址
  76.         S0_DIP[1]=168;
  77.         S0_DIP[2]=1;
  78.         S0_DIP[3]=115;
  79.       
  80.         S0_DPort[0] = 0x17;//加載端口0的目的端口號6000
  81.         S0_DPort[1] = 0x70;

  82.         S0_Mode=TCP_CLIENT;//加載端口0的工作模式,TCP客戶端模式
  83. }

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

  121. /*******************************************************************************
  122. * 函數名  : Process_Socket_Data
  123. * 描述    : W5500接收并發送接收到的數據
  124. * 輸入    : s:端口號
  125. * 輸出    : 無
  126. * 返回值  : 無
  127. * 說明    : 本過程先調用S_rx_process()從W5500的端口接收數據緩沖區讀取數據,
  128. *                        然后將讀取的數據從Rx_Buffer拷貝到Temp_Buffer緩沖區進行處理。
  129. *                        處理完畢,將數據從Temp_Buffer拷貝到Tx_Buffer緩沖區。調用S_tx_process()
  130. *                        發送數據。
  131. *******************************************************************************/
  132. void Process_Socket_Data(SOCKET s)
  133. {
  134.         unsigned short size;
  135.         size=Read_SOCK_Data_Buffer(s, Rx_Buffer);
  136.         memcpy(Tx_Buffer, Rx_Buffer, size);      
  137.         //將Tx_buffer里面的數據寫入到SD卡里面的test.txt中
  138.                        
  139.         Write_SOCK_Data_Buffer(s, Tx_Buffer, size);
  140. }

  141. /*******************************************************************************
  142. * 函數名  : main
  143. * 描述    : 主函數,用戶程序從main函數開始運行
  144. * 輸入    : 無
  145. * 輸出    : 無
  146. * 返回值  : int:返回值為一個16位整形數
  147. * 說明    : 無
  148. *******************************************************************************/
  149. int main(void)
  150. {
  151.         unsigned int W5500_Send_Delay_Counter =0;

  152.         Load_Net_Parameters();                //裝載網絡參數      
  153.         W5500_Hardware_Reset();                //硬件復位W5500
  154.         W5500_Initialization();                //W5500初始貨配置                          
  155.         W5500_Socket_Set();                        //W5500端口初始化配置

  156.         while (1)
  157.         {
  158.                 W5500_Socket_Set();                        //W5500端口初始化配置
  159.                 W5500_Interrupt_Process();//W5500中斷處理程序框架

  160.                 if((S0_Data & S_RECEIVE) == S_RECEIVE)//如果Socket0接收到數據
  161.                 {
  162.                         S0_Data&=~S_RECEIVE;
  163.                         Process_Socket_Data(0);//W5500接收并發送接收到的數據
  164.                 }
  165.                 else if(W5500_Send_Delay_Counter >= 3000)//定時發送字符串
  166.                 {
  167.                         if(S0_State == (S_INIT|S_CONN))
  168.                         {
  169.                                 S0_Data&=~S_TRANSMITOK;
  170.                                 memcpy(Tx_Buffer,"大家好,我是w5500\r\n", 23);      
  171.                                 Write_SOCK_Data_Buffer(0, Tx_Buffer, 23);//指定Socket(0~7)發送數據處理,端口0發送23字節數據         
  172.                         }
  173.                         W5500_Send_Delay_Counter=0;
  174.                 }
  175.                 W5500_Send_Delay_Counter++;
  176.         }
  177. }

  178. /*******************************************************************************
  179. * 函數名  : Delay
  180. * 描述    : 延時函數(ms)
  181. * 輸入    : d:延時系數,單位為毫秒
  182. * 輸出    : 無
  183. * 返回    : 無
  184. * 說明    : 延時是利用Timer2定時器產生的1毫秒的計數來實現的
  185. *******************************************************************************/
  186. void Delay(unsigned int  x)
  187. {
  188.     unsigned int i,j;

  189.     for(j=0;j<5;j++)
  190.                 for(i=0;i<x;i++);
  191. }
復制代碼


所有資料51hei提供下載:
YIXIN_W5500模塊-客戶端模式例程(51單片機).zip (90.42 KB, 下載次數: 212)


評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:183392 發表于 2018-6-11 13:22 | 只看該作者
尋她千百度
回復

使用道具 舉報

板凳
ID:183392 發表于 2018-6-11 14:59 | 只看該作者
眾里尋她千百度
回復

使用道具 舉報

地板
ID:246774 發表于 2018-8-12 14:55 | 只看該作者
非常感謝,學習下W5500的代碼
回復

使用道具 舉報

5#
ID:392843 發表于 2018-9-3 10:20 | 只看該作者
不錯!
回復

使用道具 舉報

6#
ID:321992 發表于 2018-12-26 19:33 | 只看該作者
學習, 眾里尋她千百度
回復

使用道具 舉報

7#
ID:387915 發表于 2019-7-14 09:31 | 只看該作者
兄弟,你們都測了嗎?能用嗎
回復

使用道具 舉報

8#
ID:585455 發表于 2019-8-10 18:05 | 只看該作者
剛剛測試 目前是ping不到
努力中
回復

使用道具 舉報

9#
ID:585455 發表于 2019-8-15 11:07 | 只看該作者
本帖最后由 jemery1030 于 2019-8-15 11:40 編輯

終於測試成功了,特來報告程式碼可用,感謝分享好物。




回復

使用道具 舉報

10#
ID:20672 發表于 2019-11-22 20:51 | 只看該作者
謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本人麻豆 | 国产成人精品一区二区三区四区 | 国产成人艳妇aa视频在线 | 毛片免费视频 | 久久久www成人免费无遮挡大片 | 伊人久久大香线 | 青娱乐自拍 | 国产精品亚洲综合 | 欧美日韩精品久久久免费观看 | 黄视频网站免费观看 | 国精产品一区一区三区免费完 | 免费高清成人 | 精品久久久av | 嫩草一区二区三区 | 久久一日本道色综合久久 | 天天爱天天操 | 国产目拍亚洲精品99久久精品 | 久久6视频 | 国产高清在线视频 | 三级在线视频 | 人人九九精| 日本三级播放 | 在线免费观看色 | 国产精品视频一区二区三区 | 精品国产乱码一区二区三区a | 欧美性影院 | 久久这里只有精品首页 | 日本精品一区二区三区在线观看 | 在线免费中文字幕 | 日韩美女一区二区三区在线观看 | 久久99视频这里只有精品 | 亚洲精品视频一区 | 91精品国产乱码久久久 | 国产伦精品一区二区三区精品视频 | 中文字幕第一页在线 | 日韩免费一二三区 | 国产免费自拍 | 日本成人在线免费视频 | 日本a∨视频 | 国产综合视频 | 国产精品成人一区二区三区 |