当前位置: 首页 > news >正文

php网站模块修改/郑州seo线上推广系统

php网站模块修改,郑州seo线上推广系统,网站开发后怎么转安卓app,wordpress工具包这里写目录标题一、W5500以太网模块1.1 简介1.2 模块排针功能表1.3 W5500芯片资源介绍1.4 接线方式1.5代码调试二、W5500实现modbus协议编程三、W5500实现web服务协议编程3.1基本原理一、W5500以太网模块 1.1 简介 NiRen_W5500模块是一款基于WIZnet W5500芯片的以太网模块&am…

这里写目录标题

  • 一、W5500以太网模块
    • 1.1 简介
    • 1.2 模块排针功能表
    • 1.3 W5500芯片资源介绍
    • 1.4 接线方式
    • 1.5代码调试
  • 二、W5500实现modbus协议编程
  • 三、W5500实现web服务协议编程
    • 3.1基本原理

一、W5500以太网模块

1.1 简介

  • NiRen_W5500模块是一款基于WIZnet W5500芯片的以太网模块,是泥人电子继 NiRen_W5100模块后设计的一块性能更好、性价比更高的以太网模块。模块集成硬件化TCP/IP协议;内部32K字节存储器作TX/RX缓存;支持10/100Mbps 的传输速率;支持8个独立端口同时运行;同时模块还支持3.3V或5V电源供电,5V供电时还可以输出3.3V电源,方便用户在不同的单片机系统中使用;模块与单片机系统的通讯方式是简单、方便的SPI通信。

1.2 模块排针功能表

在这里插入图片描述

1.3 W5500芯片资源介绍

  • W5500芯片是一种采用全硬件TCP/IP协议栈的嵌入式以太网控制器,它能使嵌入式系统通过SPI(串行外设接口)接口轻松地连接到网络。W5500特别适合那些需要使用单片机来实现互联网功能的客户,而这就需要单片机系统具有完整的TCP/IP协议栈和10/100Mbps 以太网网络层(MAC)和物理层(PHY)。W5500是由已经通过市场考验的全硬件TCP/IP协议栈、及以太网网络层和物理层的整合而成。其全硬件的TCP/IP协议栈全程支持TCP、UDP、IPv4、ICMP、ARP、IGMP和 PPPoE协议,而且已经连续多年在各种实际应用中得以证明。W5500使用32KB缓存作为其数据通信内存。通过使用W5500,用户只需通过使用一个简单的socket程序就能实现以太网的应用,而不再需要处理一个复杂的以太网控制器了。SPI(串行外设接口)提供了轻松与外部MCU连接的接口。W5500支持高达8OMHZ的SPI 接口间通信。为了降低系统功率的消耗,W5500提供了网络唤醒和休眠模式。W5500收到原始以太网数据包形式的magic packet时将被唤醒。

1.4 接线方式

在这里插入图片描述

1.5代码调试

  • 在代码中添加本地ip地址、掩码及网关。
#include "stm32f10x.h"		
#include "W5500.h"			
#include <string.h>void RCC_Configuration(void);		//设置系统时钟为72MHZ(这个可以根据需要改)
void NVIC_Configuration(void);		//STM32中断向量表配配置
void Timer2_Init_Config(void);		//Timer2初始化配置
void System_Initialization(void);	//STM32系统初始化函数(初始化STM32时钟及外设)
void Delay(unsigned int d);			//延时函数(ms)unsigned int Timer2_Counter=0; //Timer2定时器计数变量(ms)
unsigned int W5500_Send_Delay_Counter=0; //W5500发送延时计数变量(ms)/*******************************************************************************
* 函数名  : W5500_Initialization
* 描述    : W5500初始货配置
* 输入    : 无
* 输出    : 无
* 返回值  : 无
* 说明    : 无
*******************************************************************************/
void W5500_Initialization(void)
{W5500_Init();		//初始化W5500寄存器函数Detect_Gateway();	//检查网关服务器 Socket_Init(0);		//指定Socket(0~7)初始化,初始化端口0
}/*******************************************************************************
* 函数名  : Load_Net_Parameters
* 描述    : 装载网络参数
* 输入    : 无
* 输出    : 无
* 返回值  : 无
* 说明    : 网关、掩码、物理地址、本机IP地址、端口号、目的IP地址、目的端口号、端口工作模式
*******************************************************************************/
void Load_Net_Parameters(void)
{Gateway_IP[0] = 192;//加载网关参数Gateway_IP[1] = 168;Gateway_IP[2] = 0;Gateway_IP[3] = 1;Sub_Mask[0]=255;//加载子网掩码Sub_Mask[1]=255;Sub_Mask[2]=255;Sub_Mask[3]=0;Phy_Addr[0]=0x34;//加载物理地址Phy_Addr[1]=0x4b;Phy_Addr[2]=0x50;Phy_Addr[3]=0x00;Phy_Addr[4]=0x00;Phy_Addr[5]=0x00;IP_Addr[0]=192;//加载本机IP地址IP_Addr[1]=168;IP_Addr[2]=0;IP_Addr[3]=178;S0_Port[0] = 0x13;//加载端口0的端口号5000 S0_Port[1] = 0x88;S0_DIP[0]=192;//加载端口0的目的IP地址S0_DIP[1]=168;S0_DIP[2]=64;S0_DIP[3]=1;S0_DPort[0] = 0x17;//加载端口0的目的端口号6000S0_DPort[1] = 0x70;S0_Mode=TCP_CLIENT;//加载端口0的工作模式,TCP客户端模式
}
  • 将代码烧录及STM32F103开发板中,打开调试工具
    在这里插入图片描述

二、W5500实现modbus协议编程

  • Modbus TCP通讯首先需要下载W5500的驱动源码,可以到WIZnet的官网下载。
    解压目录
  • 下载FreeModbus源码,然后放到自己的工程中
    在这里插入图片描述
  • 修改porttcp中的代码
static UCHAR    aucTCPBuf[MB_TCP_BUF_SIZE];	  
BOOL
xMBTCPPortInit( USHORT usTCPPort )
{BOOL bOkay = FALSE;// 侦听端口 Modbus-TCP 端口socket_init(SOCK_TCP_PORT,Sn_MR_TCP_TCP,local_tcp_port++,Sn_MR_ND_TCP);listen_tcp_socket(SOCK_TCP_PORT);bOkay = TRUE;return bOkay;
}
BOOL
xMBPortTCPPool( void )
{  unsigned short int us_rlen;unsigned char i;i=get_tcp_socket_state(SOCK_TCP_PORT);if(i==SOCK_ESTABLISHED_TCP){if(get_tcp_socket_irq(SOCK_TCP_PORT) & Sn_IR_CON_TCP)		//查看中断有没有发生{clear_tcp_socket_irq(SOCK_TCP_PORT, Sn_IR_CON_TCP); 	/*清除接收中断标志位*/						         }us_rlen=get_tcp_rx_buffer_size(SOCK_TCP_PORT); 				//获取接收到的数据字节				  	         /*定义len为已接收数据的长度*/if(us_rlen==0)												//没有接收到数据return FALSE;											//返回else{recv_tcp_socket_data(SOCK_TCP_PORT,aucTCPBuf,us_rlen); 	//接收数据						   		         /*接收来自Server的数据*/printf("receive\r\n");usTCPBufLen=us_rlen;}( void )xMBPortEventPost( EV_FRAME_RECEIVED );			//发送已接收到新数据到Modbus-TCP状态机}else if(i==SOCK_CLOSED_TCP)									//如果socket关闭{socket_init(SOCK_TCP_PORT,Sn_MR_TCP_TCP,local_tcp_port++,Sn_MR_ND_TCP);//重新初始化}else if(i==SOCK_INIT_TCP)								//如果socket初始化完毕,监听端口{listen_tcp_socket(SOCK_TCP_PORT);}else if(i==SOCK_CLOSE_WAIT_TCP)							//如果socket等待关闭,关闭socket连接{close_tcp_socket(SOCK_TCP_PORT);}return TRUE;
}

三、W5500实现web服务协议编程

3.1基本原理

  • 实现的web服务的功能,STM32 W5500配置入网后,通过DHCP动态获取IP地址,在电脑浏览器地址栏输入这个IP地址,可以获取到一个简单form表单的页面,在表单中输入数据,提交到W5500web服务,返回一个结果。
    在这里插入图片描述
int main(void)
{u32 dhcp_timestamp;u8 mac[6]={0, };DHCP_Get dhcp_get;u16 len;u8 buffer[BUFFER_SIZE];char http_method[16];char http_uri[64];char http_body[256];u8 res_code;systick_configuration();init_led();init_system_spi();func_w5500_reset();init_hardware_usart2_dma(9600);getMacByLockCode(mac);setSHAR(mac);sysinit(txsize, rxsize);setRTR(2000);setRCR(3);//DHCPfor(;func_dhcp_get_ip_sub_gw(1, mac, &dhcp_get, 500) != 0;);	if(func_dhcp_get_ip_sub_gw(1, mac, &dhcp_get, 500) == 0){setSUBR(dhcp_get.sub);setGAR(dhcp_get.gw);setSIPR(dhcp_get.lip);close(1);}dhcp_timestamp = get_systick_timestamp();for(;;){if(get_systick_timestamp() - dhcp_timestamp > 59*1000)// 1 min dhcp{dhcp_timestamp = get_systick_timestamp();if(func_dhcp_get_ip_sub_gw(1, mac, &dhcp_get, 500) == 0){setSUBR(dhcp_get.sub);setGAR(dhcp_get.gw);setSIPR(dhcp_get.lip);close(1);}}switch(getSn_SR(SOCK_TCPS)){case SOCK_CLOSED:socket(SOCK_TCPS, Sn_MR_TCP, 80, Sn_MR_ND);break;case SOCK_INIT:listen(SOCK_TCPS);break;		case SOCK_ESTABLISHED:		if(getSn_IR(SOCK_TCPS) & Sn_IR_CON){setSn_IR(SOCK_TCPS, Sn_IR_CON);}len = getSn_RX_RSR(SOCK_TCPS);if(len>0){memset(buffer, 0, BUFFER_SIZE);len = recv(SOCK_TCPS, buffer, len);//analysis tcp msg, and package the feedback msgif(len > 0){res_code = func_analysis_http_request(buffer, len, http_method, http_uri, http_body);memset(buffer, 0, sizeof(buffer));if(res_code == 0){if(strcmp("GET", http_method) == 0 && strcmp("/", http_uri) == 0){func_package_http_response(buffer, &len, sizeof(buffer), HTML_CONTENT, strlen(HTML_CONTENT));send(SOCK_TCPS, buffer, len);					}else if(strcmp("POST", http_method) == 0 && strcmp("/sn_config.action", http_uri) == 0){func_package_http_response(buffer, &len, BUFFER_SIZE, HTML_RESULT_OK, strlen(HTML_RESULT_OK));send(SOCK_TCPS, buffer, len);}else{memcpy(buffer, TEXT_TEMPLATE_ERR, strlen(TEXT_TEMPLATE_ERR));send(SOCK_TCPS, buffer, strlen(TEXT_TEMPLATE_ERR));}disconnect(SOCK_TCPS);}else{memcpy(buffer, TEXT_TEMPLATE_ERR, strlen(TEXT_TEMPLATE_ERR));send(SOCK_TCPS, buffer, strlen(TEXT_TEMPLATE_ERR));disconnect(SOCK_TCPS);}}}break;case SOCK_CLOSE_WAIT:close(SOCK_TCPS);break;}func_led1_on();delay_ms(500);func_led1_off();delay_ms(500);}
}u8 func_analysis_http_request(u8* buffer, u16 len_recv, char* method, char* uri, char* data_body)
{char chs[BUFFER_SIZE] = {0, };char *res, *end;if(len_recv > 0){memcpy(chs, buffer, 3);res = strstr(chs, "GET");if(strcmp("GET", res) == 0){memcpy(method, "GET", strlen("GET"));}else{memset(chs, 0, BUFFER_SIZE);memcpy(chs, buffer, 4);res = strstr(chs, "POST");if(strcmp("POST", res) == 0){memcpy(method, "POST", strlen("POST"));}else{return 1;}}memset(chs, 0, BUFFER_SIZE);memcpy(chs, buffer, len_recv + 1);res = strchr(chs, '/');if(res != NULL){end = strchr(res, ' ');if(end != NULL){memcpy(uri, res, end - res);}			}memset(chs, 0, BUFFER_SIZE);memcpy(chs, buffer, len_recv + 1);res = strstr(chs, "\r\n\r\n");if(res != NULL){if(strlen(res) > 4){memcpy(data_body, res + 4, strlen(res) - 4);}			}}return 0;
}u8 func_package_http_response(u8* buffer, u16 *len_ret, u16 len_buf, char* cont, u16 len_cont)
{memset(buffer, 0, BUFFER_SIZE);*len_ret = sprintf((char*)buffer, TEXT_TEMPLATE_OK, len_cont, cont);return 0;
}
http://www.jmfq.cn/news/4997629.html

相关文章:

  • Wordpress微信支付接口/seo观察网
  • 中企动力员工邮箱忘记密码/seo入门版
  • 做网站要求的资料/网络广告有哪些
  • 网络代理ip/网站内容优化怎么去优化呢
  • 培训机构做网站宣传/免费建站免费网站
  • 网站开发什么语言比较快/兰州网络seo公司
  • 顺企网南昌网站建设/上海seo关键词优化
  • 深圳做英文网站公司/廊坊网站
  • 网站推广效益怎么分析/百度手机助手下载安装
  • 网站开发工具介绍/营销管理培训课程
  • 网站建设如何提高浏览量/肇庆seo排名外包
  • 杭州企业如何建网站/app拉新项目推广代理
  • 网站被备案能建设/网页设计网站建设
  • 电子商务网站设计案例/水果店推广营销方案
  • 网站建设策划书范文6篇/海南网站建设
  • 网站进入沙盒后/郑州网站建设公司排名
  • 怎么建立网站文件夹/怎么自己注册网站平台了
  • 网站建设公司销售提成/谷歌seo是什么
  • 日本 设计网站/培训网站推广
  • b2b网站建设方案长沙/网站友链交换平台
  • 南宁做自适应网站/怎么做百度推广的代理
  • 做淘宝客网站制作教程/百度大数据查询
  • 国外的外贸网站/网站应该如何推广
  • 网站做短链统计优缺点/做推广的公司
  • 武汉网站建设哪里好/优秀品牌策划方案
  • 建立网站赚钱/友情链接交换网址大全
  • 电子网站建设考试/网站推广优化排名seo
  • 山西省网站建设/杭州seo网站排名优化
  • 太仓网站建设平台/网络营销的方法
  • 公司网站建设工作通知/免费个人自助建站