日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年08月14日(星期四)

2019年08月14日 | 【STM32+W5500】 21,移植說明,以太網(wǎng)關(guān)鍵函數(shù),

發(fā)布者:technology78 來源: eefocus關(guān)鍵字:STM32  W5500  移植說明  以太網(wǎng) 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

0.移植說明,w5500移植文件


Ethernet和Internet里面包含的文件就是以太網(wǎng)五層模型中的應(yīng)用層


應(yīng)用層協(xié)議:HTTP,FTP,SMTP,TFTP,Telent, MQTT    支撐協(xié)議:DNS,SNMP

HTTP使用TCP而不是UDP.


MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是IBM開發(fā)的一個即時通訊協(xié)議,有可能成為物聯(lián)網(wǎng)的重要組成部分。該協(xié)議支持所有平臺,幾乎可以把所有聯(lián)網(wǎng)物品和外部連接起來,被用來當(dāng)做傳感器和制動器(比如通過Twitter讓房屋聯(lián)網(wǎng))的通信協(xié)議


0-1,Ethernet可以認(rèn)為是對W5500芯片硬件的配置,全部添加


0-2 ,Internet就是按照需求自由添加了,全部添加也可以。


比如我要通過域名www.baidu.com或者www.sina.com.cn直接訪問廣域網(wǎng),


1,需要連接可以上網(wǎng)的路由器(不能是PC,PC沒有DHCP功能),則應(yīng)該添加DHCP.H


2,作為域名解析,需要添加DNS.H


3,如果是W5500作為服務(wù)器HTTP,需要添加httpServer.h

下面的重點(diǎn)就是W5500_conf.h,W5500.h和socket.h這三個頭文件中的函數(shù),其余的都是在這上面的封裝


1,#include "W5500_conf.h",最基礎(chǔ)的讀寫函數(shù)封裝

/*W5500SPI相關(guān)函數(shù)*/

void IINCHIP_WRITE( uint32 addrbsb,  uint8 data);                        /*寫入一個8位數(shù)據(jù)到W5500*/

uint8 IINCHIP_READ(uint32 addrbsb);                                                    /*從W5500讀出一個8位數(shù)據(jù)*/

uint16 wiz_write_buf(uint32 addrbsb,uint8* buf,uint16 len);    /*向W5500寫入len字節(jié)數(shù)據(jù)*/

uint16 wiz_read_buf(uint32 addrbsb, uint8* buf,uint16 len);    /*從W5500讀出len字節(jié)數(shù)據(jù)*/


/*W5500基本配置相關(guān)函數(shù)*/

void reset_w5500(void);                                                                            /*硬復(fù)位W5500*/

void set_w5500_mac(void);                                                                        /*配置W5500的MAC地址*/

void set_w5500_ip(void);                                                                        /*配置W5500的IP地址*/


/*需要用定時的的應(yīng)用函數(shù)*/

void dhcp_timer_init(void);                                                                    /*dhcp用到的定時器初始化*/

void ntp_timer_init(void);                                                                    /*npt用到的定時器初始化*/


send()->send_data_processing->IINCHIP_WRITE(),wiz_write_buf()


2,#include "W5500.h" ,各種狀態(tài)的檢查函數(shù),本機(jī)IP配置函數(shù)

/*********************************************************

* iinchip access function

*********************************************************/


void iinchip_init(void);                                                // reset iinchip

void socket_buf_init(uint8 * tx_size, uint8 * rx_size); // setting tx/rx buf size

uint8 getISR(uint8 s);

void putISR(uint8 s, uint8 val);

uint16 getIINCHIP_RxMAX(uint8 s);                           //獲取socket接收最大值

uint16 getIINCHIP_TxMAX(uint8 s);

void setMR(uint8 val);

void setRTR(uint16 timeout);                                   // set retry duration for data transmission, connection, closing ...

void setRCR(uint8 retry);                                        // set retry count (above the value, assert timeout interrupt)

void clearIR(uint8 mask);                                       // clear interrupt

uint8 getIR( void );

void setSn_MSS(SOCKET s, uint16 Sn_MSSR);               // set maximum segment size

uint8 getSn_IR(SOCKET s);                               // get socket interrupt status 用的非常多

uint8 getSn_SR(SOCKET s);                               // get socket status

uint16 getSn_TX_FSR(SOCKET s);                          // get socket TX free buf size

uint16 getSn_RX_RSR(SOCKET s);                          // get socket RX recv buf size

//uint8 getSn_SR(SOCKET s);

void setSn_TTL(SOCKET s, uint8 ttl);

void send_data_processing(SOCKET s, uint8 *wizdata, uint16 len);//數(shù)據(jù)的發(fā)送

void recv_data_processing(SOCKET s, uint8 *wizdata, uint16 len);


void setGAR(uint8 * addr);                              // set gateway address

void setSUBR(uint8 * addr);                             // set subnet mask address

void setSHAR(uint8 * addr);                             // set local MAC address

void setSIPR(uint8 * addr);                             // set local IP address

void getGAR(uint8 * addr);

void getSUBR(uint8 * addr);

void getSHAR(uint8 * addr);

void getSIPR(uint8 * addr);

void setSn_IR(uint8 s, uint8 val);

void Reset_W5500(void);

void PHY_check(void);                                                             //網(wǎng)口連接檢查

extern uint8 rxsize[];


3,#include,連接服務(wù)器,數(shù)據(jù)的上傳和接收函數(shù)

extern uint8 socket(SOCKET s, uint8 protocol, uint16 port, uint8 flag);    // Opens a socket(TCP or UDP or IP_RAW mode)

extern void close(SOCKET s);                                                                 // Close socket

extern uint8 connect(SOCKET s, uint8 * addr, uint16 port); // Establish TCP connection (Active connection)

extern void disconnect(SOCKET s);                                                            // disconnect the connection

extern uint8 listen(SOCKET s);                                                                 // Establish TCP connection (Passive connection)

extern uint16 send(SOCKET s, const uint8 * buf, uint16 len);                                 // Send data (TCP)


//send函數(shù)包含了send_data_processing()函數(shù)

extern uint16 recv(SOCKET s, uint8 * buf, uint16 len);                                         // Receive data (TCP)

extern uint16 sendto(SOCKET s, const uint8 * buf, uint16 len, uint8 * addr, uint16 port);    // Send data (UDP/IP RAW)

extern uint16 recvfrom(SOCKET s, uint8 * buf, uint16 len, uint8 * addr, uint16  *port);      // Receive data (UDP/IP RAW)


 


4,#include


uint8 check_DHCP_state(SOCKET s); // Check the DHCP state

void do_dhcp(void);


5, #include "http_server.h"


void unescape_http_url(char * url); /* convert escape character to ascii */

 

void parse_http_request(st_http_request *, uint8 *);/* parse request from peer */

void find_http_uri_type(uint8 *, char *); /* find MIME type of a file */

 

void make_http_response_head(unsigned char *, char, u_long); /* make response header */

 

unsigned char* get_http_param_value(char* uri, char* param_name); /* get the user-specific parameter value */

6,#include "http_client.h"


void do_http_client(void);//TCP Clinet回環(huán)演示函數(shù)

7,#include "httputil.h"


void proc_http(SOCKET s, u_char * buf);

void do_https(void);

void cgi_ipconfig(st_http_request *http_request);

//void trimp(uint8* src, uint8* dst, uint16 len);

uint16 make_msg_response(uint8* buf,int8* msg);

 

void make_cgi_response(uint16 a,int8* b,int8* c);

void make_pwd_response(int8 isRight,uint16 delay,int8* cgi_response_content, int8 isTimeout);

8, #include "ntp.h"


void get_seconds_from_ntp_server(uint8* buf,uint16 idx);

void ntp_client_init(void);

void do_ntp_client(void);

tstamp change_datetime_to_seconds(void);

void calc_date_time(tstamp seconds);

9,#include "dns.h"


extern uint8 dns_get_ip[4];

extern uint8 domain_name[];

int dns_makequery(uint16 op, uint8 * name, uint8 * buf, uint16 len);

int parse_name(uint8 * msg, uint8 * compressed, /*char * buf,*/ uint16 len);

uint8 * dns_question(uint8 * msg, uint8 * cp);

uint8 * dns_answer(uint8 * msg, uint8 * cp);

uint8 parseMSG(struct dhdr * pdhdr, uint8 * pbuf);

 

uint8 dns_query(uint8 s, uint8 * name);

void do_dns(void);

10,#include "smtp.h"


void send_mail(void);

void mail_message(void);

void base64encode(char *s, char *r);

void str_insert(char *s1,char *s2,int pos);

void do_smtp(void);


關(guān)鍵字:STM32  W5500  移植說明  以太網(wǎng) 引用地址:【STM32+W5500】 21,移植說明,以太網(wǎng)關(guān)鍵函數(shù),

上一篇:【STM32+W5500】20,W5500作為Client客戶端
下一篇:【STM32+W5500】22,W5500連接外部服務(wù)器失敗,如ONENET

推薦閱讀

古語有云,一日吸貓,終身為奴。21世紀(jì)空巢青年最時髦的休閑方式,莫過于躺在家里,當(dāng)一個鏟屎官,擼擼貓。但并不是所有人都有精力、財力擁有自己的貓主子、狗主子。所以,云養(yǎng)貓、云養(yǎng)狗又出現(xiàn)了。吸貓就和吸食鴉片一樣,讓人欲罷不能。那么,當(dāng)下的科技能改變這種云養(yǎng)的模式嗎?那些年,技術(shù)浪潮下誕生的“電子寵物”日本是個很神奇的小島,這個彈丸之地...
當(dāng)手機(jī)廠商擴(kuò)大產(chǎn)能時,這或許也意味著其產(chǎn)品賣得好?,F(xiàn)在OPPO將擴(kuò)大印度大諾伊達(dá)工廠產(chǎn)能,計劃在2020年將產(chǎn)量翻倍。據(jù)外媒報道,OPPO宣布位于印度大諾伊達(dá)的制造工廠已成功完成第一階段的計劃。OPPO公司的大諾伊達(dá)工廠現(xiàn)在每個月生產(chǎn)400萬部智能手機(jī),該公司計劃到2020年將月產(chǎn)量翻一番,這意味著該工廠每年可生產(chǎn)9000多萬部智能手機(jī)。目前大諾伊達(dá)的工...
51單片機(jī)源程序如下:#include <reg52.h>#include "function.h"#include "word_lib.h"#define X_WIDTH 128 //顯示屏每行的顯示點(diǎn)數(shù)#define Y_WIDTH 64 //顯示屏每列的顯示點(diǎn)數(shù)/************************************************************************************* 以下為設(shè)置控制OLED的端口,D0、D1、RST...
小米X4發(fā)布會接近尾聲的時候,雷軍向大家介紹了小米內(nèi)部的一個探索概念項(xiàng)目——四足仿生機(jī)器人CyberDog。CyberDog匯集小米11年的技術(shù)沉淀,是工程師文化和創(chuàng)新精神的深度凝結(jié),也是小米對于未來科技生活的再次探索。CyberDog搭載高精度環(huán)境感知系統(tǒng),全身11個高精度向大腦實(shí)時傳輸信息,還原更真實(shí)的生物反應(yīng)。CyberDog有一個中文名字,叫“鐵蛋”,小米工...

史海拾趣

問答坊 | AI 解惑

新手求助一個簡單的放大電路

輸入電壓大概在0到15V,要求輸出電壓是輸入電壓的三分之一,也就是0到5V范圍內(nèi)。 要求:比較精確,誤差在毫伏級別吧。 希望能詳細(xì)一點(diǎn),我實(shí)在太白了?!?

查看全部問答∨

網(wǎng)絡(luò)攝像機(jī)從工業(yè)領(lǐng)域進(jìn)入民用領(lǐng)域

關(guān)鍵字:網(wǎng)絡(luò)攝像機(jī)     網(wǎng)絡(luò)攝像機(jī)作為最具代表性的第三代網(wǎng)絡(luò)化視頻監(jiān)控產(chǎn)品,在工業(yè)級的安全防范領(lǐng)域已經(jīng)廣為市場認(rèn)可,越來越多的安防選用網(wǎng)絡(luò)攝像機(jī)產(chǎn)品來實(shí)施。而隨著國內(nèi)整體社會經(jīng)濟(jì)的發(fā)展,網(wǎng)絡(luò)攝像機(jī)已經(jīng)開始進(jìn)入尋常百姓家, ...…

查看全部問答∨

攝像快球的技術(shù)發(fā)展與應(yīng)用前景

在現(xiàn)代電視監(jiān)控系統(tǒng)中,越來越多地使用了球形一體化攝像機(jī)(簡稱為“球機(jī)”),其中有些結(jié)構(gòu)更緊湊、旋轉(zhuǎn)速度更快的球形一體化攝像機(jī)還被簡稱為“快球”,而在早期,也有公司稱這種攝像機(jī)為集成式穹頂攝像機(jī)。     1.球機(jī)與快球   ...…

查看全部問答∨

怎樣用電機(jī)模擬風(fēng)機(jī)特性?

高壓電機(jī)進(jìn)行變頻實(shí)驗(yàn),想用電機(jī)模擬風(fēng)機(jī)實(shí)驗(yàn)。有用過的說一聲…

查看全部問答∨

高手幫幫忙,什么取得單片機(jī)傳入的值

大家好,我想問下,比如我現(xiàn)在有個單片機(jī)會定時傳入一些字符串過來,然后我開發(fā)了一個window小程式來接收這個字符串,請問在vs2005上用什么來接收,什么做呢?delphi有com控件來接收,但vs我不太熟悉,請大家?guī)蛶兔?討論下,謝謝…

查看全部問答∨

非常奇怪的問題,請教高手:NBOOT丟失

我遇到一個非常奇怪的問題: 1,用SJF2440.exe燒寫Nboot,燒寫完后讀flash,內(nèi)容正確 2,按復(fù)位鍵,看工作電流,有變化,從0.55A到0.74A,然后又降到0.65A 3,再按復(fù)位鍵,電流沒有變化 4,燒寫Eboot,燒寫完后,看Nboot的空間,Nboot的內(nèi)容全 ...…

查看全部問答∨

求CE下能顯示GIF的開發(fā)控件

CE環(huán)境下,pictureBox只能顯示GIF動畫的第一幀,各位知道哪個第三方控件可以正常播放動畫的,有個帖說國外有,也不說是什么,給個控件的名字也好啊…

查看全部問答∨

WINCE啟動問題!

手上的一塊開發(fā)板,在燒寫鏡象的時候,需要往FLASH中燒寫EBOOT.nb0還有boot.bin,通過DWN來查看和控制燒寫的過程,如此的話,WINCE系統(tǒng)系統(tǒng)有點(diǎn)慢,然后對方提供了另外一個loader.bin直接燒到FLASH中原先boot.bin的位置,之后系統(tǒng)啟動就快了很多, ...…

查看全部問答∨

求助,求MSP430F21XX最小系統(tǒng)圖,及下載接口

請高手幫忙,剛剛開始接觸MSP430,想使用MSP430F2131,有沒有用過這款MCU的幫個忙。下載接口需要怎么設(shè)計,需要用到什么下載器?…

查看全部問答∨

【征文】我的51情結(jié)

     和壇子上的其他朋友相比,我確實(shí)是個菜鳥中的菜鳥。因?yàn)槲易越佑|51只有短短半年的時間。那是一個夜黑風(fēng)高的晚上...    猶記得大約是冬季,那時剛剛學(xué)完模擬電子電路,只覺得所謂電子就是面對一堆晶體管+運(yùn)放。很枯 ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved