搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 芯片之家 > 如何利用原生JS+AJAX在W5500的WEB界面上面实现按键控制单片机IO口

如何利用原生JS+AJAX在W5500的WEB界面上面实现按键控制单片机IO口

芯片之家 2019-05-13

最近一直在搞以太网项目,有一个WEB网页控制单片机的IO口功能,一直没有什么思路,于是请教了很多前辈,有说通过数据流传输,有说通过LWIP实现的,但是用LWIP在硬件就需要采用EN28J60,还要修改传输协议,觉得有点苦恼,所以继续寻找思路,偶然的机会,看到前端的朋友写的代码,突发灵感,于是我就想,我能不能用这个方法呢,于是,便开始撸代码,好,闲话不多说,直接上代码。

JS+AJAX代码如下:

"function $(id) 
{ return document.getElementById(id);
};\r"
\
"function oorc(id,val,value)
{var ajax = new XMLHttpRequest();
ajax.open('post','key.cgi?'+val);
ajax.send();
ajax.onreadystatechange = function ()
{if (ajax.readyState==4)
{$(id).value=value;
}
}
}\r"
\
"function settingsCallback(o)//前端部分,可以选择采用AJAX+原生JS
"
<form id='frmSetting' method='POST' action='key.cgi'>"\

C语言代码:(C语言代码是基于TCP/IP)

case METHOD_POST:                                      /*POST???ó*/
mid(http_request->URI, "/", " ", req_name);    
if(strcmp(req_name,"config.cgi")==0)                  
{
cgi_ipconfig(http_request);                              make_cgi_response(8,(int8*)ConfigMsg.lip,tx_buf);        
sprintf((char *)http_response,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length:%d\r\n\r\n%s",strlen(tx_buf),tx_buf);
send(s, (u_char *)http_response, strlen((char *)http_response));    
disconnect(s);                                    
reboot_flag=1;                                
return;
}
else if(strcmp(req_name,"key.cgi?A")==0)
{
cgi_ipconfig(http_request);      
send(s, (u_char *)http_response, strlen((char *)http_response));    
GPIO_ResetBits(GPIOB, GPIO_Pin_2);
}
else if(strcmp(req_name,"key.cgi?B")==0)
{
cgi_ipconfig(http_request);        
send(s, (u_char *)http_response, strlen((char *)http_response));    
GPIO_SetBits(GPIOB, GPIO_Pin_2);
}
else if(strcmp(req_name,"key.cgi?C")==0)
{
cgi_ipconfig(http_request);                              
send(s, (u_char *)http_response, strlen((char *)http_response));    
GPIO_ResetBits(GPIOB, GPIO_Pin_3);
}
else if(strcmp(req_name,"key.cgi?D")==0)
{
cgi_ipconfig(http_request);        
send(s, (u_char *)http_response, strlen((char *)http_response));    
GPIO_SetBits(GPIOB, GPIO_Pin_3);
}
往期好文















版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《如何利用原生JS+AJAX在W5500的WEB界面上面实现按键控制单片机IO口》的版权归原作者「芯片之家」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注芯片之家微信公众号

芯片之家微信公众号:chiphome-dy

芯片之家

手机扫描上方二维码即可关注芯片之家微信公众号

芯片之家最新文章

精品公众号随机推荐

上一篇 >>

初探Rsocket