做单片机用到WEB控制。。跨界的,所以这个问题应该很简单。求帮助
我是想用自己的电脑做服务器,通过PC对单片机通信,实现对家里电器的远程控制。
做了个web页面。想实现,点击按钮,PC通过串口向单片机发送一个字节数据。然后单片机的程序是,收到一个字节,立刻返回多个字节的字符串。
现在问题是,按下按钮后PC能正常发送,单片机应该也正常返回了,但是web端没能完整接受这个字符串,导致get.text里显示不全。(例如我让单片机返回的是Connected:现在按一下网页里的button,有时候显示出“Connected”可是有时候又显示“Con”,甚至完全显示为空白“”)
我个人的判断是因为按下button就pageload了,所以DataReceivedHandler没来的及接受完数据。
有什么能让buttonclick不pageload而是DataReceivedHandler处理完之后再刷新页面的方法吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.IO.Ports;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
private SerialPort comm;
private bool flag=false;
protected void Page_Load(object sender, EventArgs e)
{
comm = new SerialPort();
comm.BaudRate = 9600;
comm.PortName = "COM4";
comm.DataBits = 8;
comm.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
}
protected void Check_Click(object sender, EventArgs e)
{
comm.Open();
Time.Text = (System.DateTime.Now.ToLongTimeString());
comm.Write("1");
Get.Text = "";//按下按钮就把这个textbox清空,避免无法分辨当前显示的是这一次还是上一次返回的数据
}
protected void Get_TextChanged(object sender, EventArgs e)
{
}
void DataReceivedHandler(object sender,SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Get.Text = indata;
}
}
做了个web页面。想实现,点击按钮,PC通过串口向单片机发送一个字节数据。然后单片机的程序是,收到一个字节,立刻返回多个字节的字符串。
现在问题是,按下按钮后PC能正常发送,单片机应该也正常返回了,但是web端没能完整接受这个字符串,导致get.text里显示不全。(例如我让单片机返回的是Connected:现在按一下网页里的button,有时候显示出“Connected”可是有时候又显示“Con”,甚至完全显示为空白“”)
我个人的判断是因为按下button就pageload了,所以DataReceivedHandler没来的及接受完数据。
有什么能让buttonclick不pageload而是DataReceivedHandler处理完之后再刷新页面的方法吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.IO.Ports;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
private SerialPort comm;
private bool flag=false;
protected void Page_Load(object sender, EventArgs e)
{
comm = new SerialPort();
comm.BaudRate = 9600;
comm.PortName = "COM4";
comm.DataBits = 8;
comm.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
}
protected void Check_Click(object sender, EventArgs e)
{
comm.Open();
Time.Text = (System.DateTime.Now.ToLongTimeString());
comm.Write("1");
Get.Text = "";//按下按钮就把这个textbox清空,避免无法分辨当前显示的是这一次还是上一次返回的数据
}
protected void Get_TextChanged(object sender, EventArgs e)
{
}
void DataReceivedHandler(object sender,SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Get.Text = indata;
}
}
...全文
相关推荐
基于java web的单片机远程控制系统.zip
【标题】与【描述】提及的是一个基于Java Web技术实现的单片机远程控制系统,它允许用户通过Web界面远程操作和监控单片机设备。
跨界联动,创意无限——深入探索 ESP8266 的灯光控制应用
在物联网时代,我们追求将各种设备和平台相互连接,实现智能化控制和互动。在这篇文章中,我们将详细介绍如何使用 ESP8266 单片机实现灯光控制,并结合按键、物联网平台 OneNet 和 Web 应用,打造一个炫酷的跨界联动系统。我们将提供相应的源代码,帮助读者快速上手实现这一项目。步骤三:创建 Web 应用。步骤三:创建 Web 应用。
一个简单的PHP Web论坛
这个压缩包包含的是一个基于PHP构建的简单Web论坛的源代码和相关文档。
基于java web的单片机远程控制系统
该项目实现了一个基于Java Web的单片机远程控制系统,采用SSH框架与Tomcat服务器,支持Android客户端登录、发送控制指令及接收反馈。系统通过心跳包检测设备在线状态,并完成命令转发。后端
java做的简单网页
Java是一种广泛使用的编程语言,尤其在开发Web应用方面有着重要的地位。这个名为“java做的简单网页”的项目,展示了如何利用Java技术来构建一个基础的网页。


