STM32F1 W5500 TCP Client 回环测试
剛剛接觸W5500的時(shí)候,做TCP Client回環(huán)測試的時(shí)候,出現(xiàn)很奇怪的問題,查了好多遍代碼,死活連接不上PC網(wǎng)絡(luò)助手的TCPServer。其實(shí)代碼本身沒什么大問題,PC機(jī)的防火墻忘記關(guān)閉了。總結(jié)一下TCP Client回環(huán)測試要注意的幾個(gè)點(diǎn):
1、W5500的基礎(chǔ)庫好用。
2、在PC的CMD命令窗口中可以PING通W5500設(shè)備。
3、在測試的時(shí)候,條件允許登錄到路由器的管理頁面,查看連接設(shè)備是否有W5500的有線連接。
4、PC的防火墻要關(guān)閉。
編譯好代碼,下載到板子上,給板子復(fù)位后路由管理頁面是這樣的:
?
路由器的管理頁面上,多了一個(gè)匿名設(shè)備的有線連接,它就是W5500。
在PC的CMD命令窗口中PING該設(shè)備,是可以PING通的:
?
如果PC機(jī)的防火墻不關(guān)閉,PC的網(wǎng)絡(luò)助手是等不到W5500發(fā)起的TCP連接的,關(guān)閉PC防火墻后,可以看到效果:
下面附上主函數(shù)的測試代碼:
#ifndef __STM32F10X_H #define __STM32F10X_H #include "stm32f10x.h" #endif#ifndef __Z_UTIL_TIME_H #define __Z_UTIL_TIME_H #include "z_util_time.h" #endif#ifndef __Z_HARDWARE_LED_H #define __Z_HARDWARE_LED_H #include "z_hardware_led.h" #endif#ifndef __Z_HARDWARE_SPI_H #define __Z_HARDWARE_SPI_H #include "z_hardware_spi.h" #endif#include "w5500.h" #include "socket.h" #include "w5500_conf.h"uint8 buffer[2048];int main(void) {uint8 mac[6]={0x00, 0x0C, 0x32, 0xDA, 0x07, 0x4C};uint8 lip[4]={192, 168, 1, 111};uint8 sub[4]={255, 255, 255, 0};uint8 gw[4]={192, 168, 1, 1};uint8 remote_ip[4] = {192, 168, 1, 105};uint16 remote_port = 9000;uint16 local_port = 5000;uint16 len;init_led();init_system_spi();func_w5500_reset();setSHAR(mac);setSUBR(sub);setGAR(gw);setSIPR(lip);sysinit(txsize, rxsize);setRTR(2000);setRCR(3);setkeepalive(0);for(;;){ switch(getSn_SR(0)){case SOCK_INIT:connect(0, remote_ip, remote_port);break;case SOCK_ESTABLISHED:if(getSn_IR(0) & Sn_IR_CON) {setSn_IR(0, Sn_IR_CON);}len=getSn_RX_RSR(0);if(len>0){len = recv(0,buffer,len);send(0,buffer,len);}break;case SOCK_CLOSE_WAIT:close(0);break;case SOCK_CLOSED:socket(0,Sn_MR_TCP,local_port,Sn_MR_ND);break;}func_led1_on();delay_ms(500);func_led1_off();delay_ms(500);} }W5500的庫函數(shù),可以參考?《測試工程代碼00_W5500_ping.rar》。
將以上的主函數(shù)替換到工程的主函數(shù)即可。
TCP Client的拓展應(yīng)用場景,如Http Client,MQTT Client,本測試是基礎(chǔ)測試。
總結(jié)
以上是生活随笔為你收集整理的STM32F1 W5500 TCP Client 回环测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员接私活的6个网站,你有技术就有钱!
- 下一篇: php红包退回通知,php红包