|
W5500網(wǎng)絡(luò)模塊相關(guān)資料及51單片機(jī)和STM32應(yīng)用程序的資料,STM32的程序資料太大無(wú)法添加到附件,如有需要可聯(lián)系題主。
UDP模式例程:
* 描述 :W5500的端口0工作在客戶端模式,主動(dòng)與《TCP&UDP測(cè)試工具》上創(chuàng)建的服務(wù)端連接,
* 并且定時(shí)給服務(wù)端發(fā)送字符串"\r\nWelcome To YiXinElec!\r\n",同時(shí)將接
* 收到服務(wù)端發(fā)來(lái)的數(shù)據(jù)回發(fā)給服務(wù)端。
* 實(shí)驗(yàn)平臺(tái):用戶51單片機(jī)開(kāi)發(fā)板 + YIXIN_W5500以太網(wǎng)(TCP/IP)模塊
* 硬件連接: P3^2 -> W5500_RST
* P3^3 -> W5500_INT(本例程沒(méi)有用到中斷,此引腳可以不接)
* P3^6 -> W5500_SCS
* P3^7 -> W5500_SCK
* P3^4 -> W5500_MISO
* P3^5 -> W5500_MOSI
---------------------------------------------------------------------
* 描述 :W5500的端口0工作在UDP模式,端口通信不需要建立連接即可接收其它UDP模式端口發(fā)來(lái)的數(shù)據(jù),
* 數(shù)據(jù)的前4個(gè)字節(jié)為對(duì)方端口IP地址,第5、6個(gè)字節(jié)為端口號(hào),獲得對(duì)方IP和端口號(hào)后W5500端口0
* 將定時(shí)給對(duì)應(yīng)端口發(fā)送字符串"\r\nWelcome To YiXinElec!\r\n",同時(shí)將接收
* 到的數(shù)據(jù)回發(fā)給對(duì)應(yīng)端口。
* 實(shí)驗(yàn)平臺(tái):用戶51單片機(jī)開(kāi)發(fā)板 + YIXIN_W5500以太網(wǎng)(TCP/IP)模塊
* 硬件連接: P3^2 -> W5500_RST
* P3^3 -> W5500_INT(本例程沒(méi)有用到中斷,此引腳可以不接)
* P3^6 -> W5500_SCS
* P3^7 -> W5500_SCK
* P3^4 -> W5500_MISO
* P3^5 -> W5500_MOSI
服務(wù)端模式單片機(jī)源程序如下:
- /***************************************************************************************
- * 描述 :W5500的端口0工作在服務(wù)端模式:等待《TCP&UDP測(cè)試工具》上創(chuàng)建的客戶端主動(dòng)與服務(wù)端連接,
- * 連接成功后,服務(wù)端定時(shí)給客戶端發(fā)送字符串"\r\nWelcome To YiXinElec!\r\n",
- * 同時(shí)將接收到客戶端發(fā)來(lái)的數(shù)據(jù)回發(fā)給客戶端。
- * 實(shí)驗(yàn)平臺(tái):用戶51單片機(jī)開(kāi)發(fā)板 + YIXIN_W5500以太網(wǎng)(TCP/IP)模塊
- * 硬件連接: P3^2 -> W5500_RST
- * P3^3 -> W5500_INT(本例程沒(méi)有用到中斷,此引腳可以不接)
- * P3^6 -> W5500_SCS
- * P3^7 -> W5500_SCK
- * P3^4 -> W5500_MISO
- * P3^5 -> W5500_MOSI
- * 淘寶 :http://yixindianzikeji.taobao.com/
- ***************************************************************************************/
- /*例程網(wǎng)絡(luò)參數(shù)*/
- //網(wǎng)關(guān):192.168.1.1
- //掩碼: 255.255.255.0
- //物理地址:0C 29 AB 7C 00 01
- //本機(jī)IP地址:192.168.1.199
- //端口0的端口號(hào):5000
- //端口0的目的IP地址:192.168.1.190
- //端口0的目的端口號(hào):6000
- #include <reg51.h>
- #include "W5500.h"
- #include <string.h>
- void Delay(unsigned int d); //延時(shí)函數(shù)(ms)
- /*******************************************************************************
- * 函數(shù)名 : W5500_Initialization
- * 描述 : W5500初始貨配置
- * 輸入 : 無(wú)
- * 輸出 : 無(wú)
- * 返回值 : 無(wú)
- * 說(shuō)明 : 無(wú)
- *******************************************************************************/
- void W5500_Initialization(void)
- {
- W5500_Init(); //初始化W5500寄存器函數(shù)
- Detect_Gateway(); //檢查網(wǎng)關(guān)服務(wù)器
- Socket_Init(0); //指定Socket(0~7)初始化,初始化端口0
- }
- /*******************************************************************************
- * 函數(shù)名 : Load_Net_Parameters
- * 描述 : 裝載網(wǎng)絡(luò)參數(shù)
- * 輸入 : 無(wú)
- * 輸出 : 無(wú)
- * 返回值 : 無(wú)
- * 說(shuō)明 : 網(wǎng)關(guān)、掩碼、物理地址、本機(jī)IP地址、端口號(hào)、目的IP地址、目的端口號(hào)、端口工作模式
- *******************************************************************************/
- void Load_Net_Parameters(void)
- {
- Gateway_IP[0] = 192;//加載網(wǎng)關(guān)參數(shù)
- Gateway_IP[1] = 168;
- Gateway_IP[2] = 1;
- Gateway_IP[3] = 1;
- Sub_Mask[0]=255;//加載子網(wǎng)掩碼
- Sub_Mask[1]=255;
- Sub_Mask[2]=255;
- Sub_Mask[3]=0;
- Phy_Addr[0]=0x0c;//加載物理地址
- Phy_Addr[1]=0x29;
- Phy_Addr[2]=0xab;
- Phy_Addr[3]=0x7c;
- Phy_Addr[4]=0x00;
- Phy_Addr[5]=0x01;
- IP_Addr[0]=192;//加載本機(jī)IP地址
- IP_Addr[1]=168;
- IP_Addr[2]=1;
- IP_Addr[3]=199;
- S0_Port[0] = 0x13;//加載端口0的端口號(hào)5000
- S0_Port[1] = 0x88;
- // S0_DIP[0]=192;//加載端口0的目的IP地址
- // S0_DIP[1]=168;
- // S0_DIP[2]=1;
- // S0_DIP[3]=190;
- //
- // S0_DPort[0] = 0x17;//加載端口0的目的端口號(hào)6000
- // S0_DPort[1] = 0x70;
- S0_Mode=TCP_SERVER;//加載端口0的工作模式,TCP服務(wù)端模式
- }
- /*******************************************************************************
- * 函數(shù)名 : W5500_Socket_Set
- * 描述 : W5500端口初始化配置
- * 輸入 : 無(wú)
- * 輸出 : 無(wú)
- * 返回值 : 無(wú)
- * 說(shuō)明 : 分別設(shè)置4個(gè)端口,根據(jù)端口工作模式,將端口置于TCP服務(wù)器、TCP客戶端或UDP模式.
- * 從端口狀態(tài)字節(jié)Socket_State可以判斷端口的工作情況
- *******************************************************************************/
- void W5500_Socket_Set(void)
- {
- if(S0_State==0)//端口0初始化配置
- {
- if(S0_Mode==TCP_SERVER)//TCP服務(wù)器模式
- {
- if(Socket_Listen(0)==TRUE)
- S0_State=S_INIT;
- else
- S0_State=0;
- }
- else if(S0_Mode==TCP_CLIENT)//TCP客戶端模式
- {
- if(Socket_Connect(0)==TRUE)
- S0_State=S_INIT;
- else
- S0_State=0;
- }
- else//UDP模式
- {
- if(Socket_UDP(0)==TRUE)
- S0_State=S_INIT|S_CONN;
- else
- S0_State=0;
- }
- }
- }
- /*******************************************************************************
- * 函數(shù)名 : Process_Socket_Data
- * 描述 : W5500接收并發(fā)送接收到的數(shù)據(jù)
- * 輸入 : s:端口號(hào)
- * 輸出 : 無(wú)
- * 返回值 : 無(wú)
- * 說(shuō)明 : 本過(guò)程先調(diào)用S_rx_process()從W5500的端口接收數(shù)據(jù)緩沖區(qū)讀取數(shù)據(jù),
- * 然后將讀取的數(shù)據(jù)從Rx_Buffer拷貝到Temp_Buffer緩沖區(qū)進(jìn)行處理。
- * 處理完畢,將數(shù)據(jù)從Temp_Buffer拷貝到Tx_Buffer緩沖區(qū)。調(diào)用S_tx_process()
- * 發(fā)送數(shù)據(jù)。
- *******************************************************************************/
- void Process_Socket_Data(SOCKET s)
- {
- unsigned short size;
- size=Read_SOCK_Data_Buffer(s, Rx_Buffer);
- memcpy(Tx_Buffer, Rx_Buffer, size);
- Write_SOCK_Data_Buffer(s, Tx_Buffer, size);
- }
- /*******************************************************************************
- * 函數(shù)名 : main
- * 描述 : 主函數(shù),用戶程序從main函數(shù)開(kāi)始運(yùn)行
- * 輸入 : 無(wú)
- * 輸出 : 無(wú)
- * 返回值 : int:返回值為一個(gè)16位整形數(shù)
- * 說(shuō)明 : 無(wú)
- *******************************************************************************/
- int main(void)
- {
- unsigned int W5500_Send_Delay_Counter =0;
- Load_Net_Parameters(); //裝載網(wǎng)絡(luò)參數(shù)
- W5500_Hardware_Reset(); //硬件復(fù)位W5500
- W5500_Initialization(); //W5500初始貨配置
- while (1)
- {
- W5500_Socket_Set();//W5500端口初始化配置
-
- W5500_Interrupt_Process();//W5500中斷處理程序框架
- if((S0_Data & S_RECEIVE) == S_RECEIVE)//如果Socket0接收到數(shù)據(jù)
- {
- S0_Data&=~S_RECEIVE;
- Process_Socket_Data(0);//W5500接收并發(fā)送接收到的數(shù)據(jù)
- }
- else if(W5500_Send_Delay_Counter >= 3000)//定時(shí)發(fā)送字符串
- {
- if(S0_State == (S_INIT|S_CONN))
- {
- S0_Data&=~S_TRANSMITOK;
- memcpy(Tx_Buffer, "\r\nWelcome To YiXinElec!\r\n", 23);
- Write_SOCK_Data_Buffer(0, Tx_Buffer, 23);//指定Socket(0~7)發(fā)送數(shù)據(jù)處理,端口0發(fā)送23字節(jié)數(shù)據(jù)
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
|
-
-
-
-
51單片機(jī)程序例程.rar
2018-5-18 10:54 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
237.25 KB, 下載次數(shù): 115, 下載積分: 黑幣 -5
-
-
W5500封裝庫(kù).rar
2018-5-18 10:54 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
6.63 KB, 下載次數(shù): 44, 下載積分: 黑幣 -5
-
-
W5500開(kāi)發(fā)官網(wǎng)資料.rar
2018-5-18 10:55 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
13.02 MB, 下載次數(shù): 98, 下載積分: 黑幣 -5
-
-
芯片資料.rar
2018-5-18 10:55 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
2.22 MB, 下載次數(shù): 55, 下載積分: 黑幣 -5
評(píng)分
-
查看全部評(píng)分
|