php 如何读取串口的数据呀?

我有个设备是接串口的,php如何访问串口设备上的数据啊?串口是 COM1,波特率是2400,具体的操作流程是?

2个回答

在很早期的PHP版中,是有一个库可以调用的,默认配置关闭,需要打开,具体名字忘了。新版的貌似没了。如果使用可能得自己扩展吧。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
php如何读取串口的数据
如果数据由串口设备获得,如何用php把串口设备获取的数据信息读出来?请教各位。
如何从串口读取16进制的数据呀
如何从串口读取16进制的数据,读出来显示在文本框里
java如何读取串口的16进制数据呀??
如题,需要将16进制数据读出,然后按16进制格式显示。请问如何处理呀??
如何读取串口的数据
用VC做个程序,通过串口与微机进行通讯,当向串口发送数据,微机会返回数据,例如返回41 01 7B,要怎样才能把7B读取到并转换为10进制显示出来。41,01,7B各为一个字节,是16进制。
如何读取串口的数据???
我已经把单片机能过串口连到了电脑上,现在如何把串口的数据读取出来??rn我打算用VC内联汇编或win32汇编写,因为要用界面显示出来的,如何做?
串口的数据如何读取?
我用inportb()通过端口读入数据后,如何把这些数据写如我自己设定好的数组中? 我想做的是可以一边把数据读入,同时把读取的数据打印到屏幕上~rnrn
php 如何读取串口信息
用扫描机 扫 二维码rn扫了之后 如何将获取二维码中的号码传递到程序rn并用php 判断此号码是否正确
如何编制程序读取串口的数据?
我处一台检斤仪器采用压力传感器来测试数据,近日购入计算机后准备编制用计算机自动从端口2 读取检斤数据,显示在显示器上,并进行数据计算。rn将压力传感器经数模转换后的数据送至端口2,使用“串口精灵软件”测试端口2时,接收功能收到如下十六进制数据:rnF8 00 78 00 80 00 F8 78 80 F8 80 78 80 ....rn.................rn并且数据呈有规律循环。此时,数模转换器液晶显示器上的压力读数为0;rn请问,怎样编程,才能读取该端口的数据,并且在显示器上显示出来,rn
如何串口读取GPS的数据
如何串口读取GPS的数据,高手指点。
android如何读取串口数据
模拟器上可以模拟吗?rn或者用java如何读取?
如何编程读取串口数据?
我处一台检斤仪器采用压力传感器来测试数据,近日购入计算机后准备编制用计算机自动从端口2 读取检斤数据,显示在显示器上,并进行数据计算。rn将压力传感器经数模转换后的数据送至端口2,使用“串口精灵软件”测试端口2时,接收功能收到如下十六进制数据:rnF8 00 78 00 80 00 F8 78 80 F8 80 78 80 ....rn.................rn并且数据呈有规律循环。此时,数模转换器液晶显示器上的压力读数为0;rn请问,怎样编程,才能读取该端口的数据,并且在显示器上显示出来,rn另外,随机有程序,但经常出错,现在想重写程序,该怎么办??rn如想要随机的程序,我可以邮过来。帮忙分析一下。
vb串口如何定时读取串口数据?
请问如何用串口定时读取串口数据?rn用了oncomm好像不能定时读取。用timer控件如何定时读取串口数据呢?rn比如,每1s读取一次串口的数据。rn谢谢大家
php如何读取超级终端数据?
各位高手,我现在想用PHP读取超级终端的数据,请问能读吗,该怎么读,很着急。帖子别沉下去,大家都来捧场,谢谢大家。
读取串口数据请教
异步读取串口时,设置了监听事件,监听到输入缓冲区内有数据,读取前已挂起一段时间,但读取时缓冲区字节数为0,间隔一次又好了,如此循环,请教怎么办?
C# 读取串口数据
额,大家好, rn最近一个项目需要有一个读取串口数据的小程序, rn不知道大家有没有开发过类似的东西 rn我因为没有这方面的经验,希望大家能不吝指教一下,给我一些源代码参考。十分感谢。
C#读取串口数据
C#读取串口数据:打开端口、监听端口并获取数据、关闭端口
读取串口数据
void UartBuf_WD(UartBuf *Ringbuf,uint8_t DataIn) { Ringbuf->pbuf[Ringbuf->Wd_Indx & Ringbuf->Mask] = DataIn;//数据长度掩码很重要,这是决定数据环形的关键 Ringbuf->Wd_Indx++;//写完一次,写指针加1,为下一次写入做准备 } d今天移植一段代码的时候看到一
串口读取GPS数据
现在需要通过串口读取GPS接收机的数据,数据格式如下rn$PASHR,MCA,??0 羆姜#Kpy?捶2\?al5 揭rn$PASHR,MCA,?. 羀棏F鬍?碅X>dB庲N5 轔rn$PASHR,MCA,?, ' 羆WQ?k?迭?I#孇逝T 緅rn$PASHR,MCA,?9- , 羃7F??T礦L 截a 嬯rn$PASHR,POS,0,06,033555.00,3958.82935,N,11620.57063,E,065.33,,354.1,000.0,+000.0,2.8,2.2,1.7,1.0,BN00*29rn$PASHR,SAT,06,16,301,79,44,U,13,321,13,47,U,06,045,19,46,U,21,088,02,39,U,25,090,57,44,U,23,212,08,51,U*16rnrn对于同一类型的信息,如MCA或者POS,有固定的长度,但是不同类型的信息长度不同rn这些信息每秒种重复一次。请问我应该采取哪一种模式,如何设置,才能将每条信息都分开并完整地读取?
Linux读取串口数据
在Linux下实现串口的读取程序,主要包括了文件的一些格式
读取串口和usb数据?
我现在用。net的serialport控件读取GPS里面已经存在的数据(GPS在室内无法接收到卫星),GPS通过com1端口与计算机连接。但是serialport控件总是接收不到数据。我刚学这个,不知道怎么做,请大家多多指教!rn 还有一个问题就是如何检测到计算机连接到的移动设备(如U盘或移动硬盘)?我想直接通过程序读取U盘内的东西。不知道从何下手?
java读取串口数据
这是我的毕业设计,要求是将电脑串口(USB)接收到的数据打包上传到互联网,花了几天时间了解了java读取串口和制作图形界面的方法,做了一个小程序实现了这个功能,这里只是简单记录一下java读取串口的方法。首先查到java读取串口数据,需要下载一个叫javacomm20-win32的包,这个 包是官方提供的,已经过时了,看名字也知道只支持32位的系统。由于是64位系统的电脑,几番搜寻后发现了一个叫RX
Unity读取串口数据
读取串口数据的过程其实就跟你读取文件操作IO时的过程差不多:首先要使用using System.IO.Ports;时需要先将 改为 具体操作: Edit -> Project Settings -> Player -> Other Settings -> Api Compatibility Level具体代码:using System.Collections; using System.
怎样读取串口数据?
Hello All:rn我正在做一个读取/写入串口的小程序,发现若对串口采用“异步”的方式进行读取/写入,就是采用 Overlapp,分别用事件来同步 读取/写入,从串口读取大量数据时,要掉包;而写入时正常。rn若采用同步读取/写入时,我又不能确定写入的时刻,这由我其他流程决定,所以我希望达到这种目的:用异步的方式写入串口;用同步的方式读取串口,就是轮讯的方式不断读取串口,不知能不能实现?rn若采用异步时,发现还有个缺点,若我指定要读取 100 字节的数据,他会在接收到或超过 100 字节时,才用同步事件来通知我,而小于请求的数据大小时,他不会通知我的,所以我苦恼中。rnrn烦请各位高人指点指点!rn万分感谢!rnBest Regard
asp.net读取串口数据
在网上找了很久也没有找到能在服务端读取串口数据的,自己借鉴了客户端的原理,写出了一个能在网页上显示串口数据的。拿出来与大家分享一下,有问题可以提出来,一起学习学习。
Unity 读取串口数据
直接用即可,接收到信号会卡顿一下 放在线程中即可。 波特率 ,看一下你的硬件中的设置 com端口看一下你的设备管理中的串口即可。 有问题加我qq 791719266 public string portname = "14"; private int baudRate = 115200; SerialPort sp = null; private voi...
VB.NET读取串口数据
VS2008读取串口数据,并存入数据库,可设置波特率,校检位,停止位等。
c#读取串口数据
最近在写一个串口读数据的方法rnrn[code=C#]rnSerialPort sp= new SerialPort();rn[/code]rn这是一个实时数据接收程序。rn我需要监听串口,一有数据马上做出处理 rn 现在我是写了一个死循环 rn[code=C#]rnwhile(true)rnrn int PortLength = sp.BytesToRead;rn rn if (PortLength != 0)rn rn byte[] PortDatas = new byte[PortLength];rnrn for (int i = 0; i < PortLength; i++)rn rn PortDatas[i] = (byte)sp.ReadByte();rn rn rnrn[/code]rnrn这样做也能实现功能, 只是这个循环一直在执行。 rnrn有没有这样一个方法 就像 Socket 下的 Receive 方法一样 rn没有数据来的时候线程是休眠状态的 ?
串口读取硬件数据
各位大侠,本人初学C#,最近要做一个关于称重的项目,要从硬件上硬件上读取数据,可是应用串口通信的时候有些迷糊:rn1、怎么样读取数据。rn2、读出的数据怎么样进行转换成重量显示呢。rn以下是我写的程序,只能写到这点,下面就没有办法写下去了,请大家指点rnusing System;rnusing System.Collections.Generic;rnusing System.Text;rnusing System.IO.Ports;rnusing System.Threading;rnnamespace testrnrn //类是继承事件,并且具有获取值得功能rn internal class WeightEventArgs : EventArgs //称重事件继承于这个事件rn rn private float weight = 0.0f; //定义单精度变量_weightrn public float Weight //定义称重方法rn rn get return weight; //获取称得的重量的值 rn rn public WeightEventArgs(float fW) //给变量赋值,fw赋给_weightrn rn weight = fW;rn rn rnrn public class Portrn rn /* public static string pName;rn public static int pBalut;rn public static int pData;rn public static string pParity;rn public static string pStop;rnrn*/rn private static SerialPort serialport;//声明一个串口变量rn private static Timer timeport; //声明一个时间变量rn private static bool stop = false; //停止变量赋falsern private static bool running = false; //定义布尔类型变量,并赋初值falsern private static float weight = 0.0f; // 表示单精度float型,如果没有加f默认为double类型,并且赋初值0.0rnrn public static event EventHandler WeightValueChanged;rnrn public static void Start()rn rn if (timeport == null) //如果定时器的值为空,则实例化一个静态定时器rn timeport = new Timer(TreatGatherCycle,null, 2000, 2000); //定时器的四个参数配置情况,设置间隔为2s(第四个参数为时间间隔)rn stop = false; rn rn public static void ResetPort()rn rn running = false;rn rn public static void Stop()rn rn if (timeport != null) //如果时间是非空rn rn timeport.Change(Timeout.Infinite, Timeout.Infinite);//设置线程为无线长时间rn rn timeport = null; //将时间变量置空rn if (serialport != null && serialport.IsOpen)rn rn serialport.Close(); rn rn serialport = null;rn stop = true;rn rnrn private static void TreatGatherCycle(Object stateInfo)rn rn if (!stop) //如果不是停止rn rn tryrn rn timeport.Change(Timeout.Infinite, Timeout.Infinite); //设置计时器启动时间为无限大,间隔为无限大,即:计时器不工作rn /*第一次需要打开串口*/rn if (!running) //首先是没有运行状态rn rn serialport = new SerialPort(); //实例化一个具体的串口设置rn serialport.PortName = frmPort.st1;rn serialport.BaudRate = frmPort.str2;rn serialport.DataBits = frmPort.str3;rn serialport.Parity = (Parity)frmPort.str4;rn serialport.StopBits = (StopBits)frmPort.str5;rnrn serialport.ReadTimeout = 600; //设置读超时时间为600rnrn serialport.Open(); //设置好之后打开串口rn running = true; //开始运行rn rnrnrn //读取数据并解析出重量rn char[] buffer = new char[512];
Qt5读取串口数据
使用Qt5自带的QSerialPort和QSerialPortInfo写的控制台程序,可读取串口数据。环境:win7 64位系统,Qt版本:qt-opensource-windows-x86-mingw482_opengl-5.3.0
VC++读取串口数据
利用VC++的控件,编程实现接收串口数据,并显示
串口读取不到数据
1、有一个串口设备,用RS485-USB接口读取,用笔记本(windows,linux)读取都是可以的。rn2、换了一台笔记本,不插电源,只用笔记本的电池供电,可以读取。可是插上电源之后立马就读不到数据了,偶尔会出现几个乱码,其他时候什么都读不到。(在windows下和linux下现象相同)。rn3、尝试过台式机,还有树莓派微电脑,还有旁边集群上面的节点。都读不到数据,情况和第2里面的插上电源后的现象一样。rn4、尝试过用同一笔记本的不同USB连接,但是连接了两个设备以上就会出现乱码的问题,就算插在不同的USB口上也会,只要一插上,还没用软件读取,之前正常的就开始乱码。rn5、放一台笔记本在那里读数据太浪费,而且有6个设备要读取,就需要六台笔记本。rn6、目前的困难就是笔记本读太浪费,又不能远程读取数据,有没有什么专门设备是可以读取串口信息的,有少量经费一两千这样子可以购买,或者哪位高手知道如何解决节点读取不到USB串口数据的问题。rnrn总结了一下现象,可以基本排除系统或者驱动原因。试过好几台笔记本,只有一台笔记本出现2中的现象,其他都正常。只要是笔记本,windows和ubuntu都正常读取到数据,台式机,树莓派和服务器上的节点都不行。
串口数据的读取
读取串口的数据 网上找的
读取和发生串口数据
[code=C#]rn private void btnWrite_Click(object sender, EventArgs e) rn rn this.serialPort1.PortName = "COM4"; rn this.serialPort1.BaudRate = 9600; rn this.serialPort1.DataBits = 8; rn this.serialPort1.Parity = System.IO.Ports.Parity.None; rn this.serialPort1.StopBits = System.IO.Ports.StopBits.One; rn if (this.serialPort1.IsOpen == false) rn rn this.serialPort1.Open(); rn byte[] data = Encoding.Unicode.GetBytes(textBox3.Text); rn string str = Convert.ToBase64String(data); rn serialPort1.WriteLine(str); rn MessageBox.Show("数据发送成功!","系统提示");rn }rn }rnrnrn private void button2_Click(object sender, EventArgs e) rn 第一种接收rn byte[] data = Convert.FromBase64String(serialPort1.ReadLine()); rn textBox2.Text = Encoding.Unicode.GetString(data); rn serialPort1.Close(); rn MessageBox.Show("数据接收成功!","系统提示"); rn 第二种接收rn int n = this.serialPort1.BytesToRead; rn byte[] buf = new byte[n]; rn this.serialPort1.Read(buf, 0, n);rn string receiveData = Encoding.ASCII.GetString(buf);rn MessageBox.Show(receiveData.ToString());rnrn rn[/code]rn为什么第二种接收没有数据? 第一种接收会卡在 byte[] data = Convert.FromBase64String(serialPort1.ReadLine()); 这一步? 求指教
java 读取串口数据
比如说我发送:rnrnabcdefgrnrn我的接收段: read.javarnrn会报出a, 在报出 bcdefg 请问有哪位高手知道是怎么回事
WINCE 读取串口数据
// WDT_Consel.cpp : Defines the entry point for the console application.rn//rnrn#include "stdafx.h"rnrn#include rn#include rnrnvoid ReadFromCom();rnUINT ReadThread(LPVOID pParam);rnint _tmain(int argc, _TCHAR* argv[])rnrnrn printf("hello\n\n");rn ReadFromCom();rnrn return 0;rnrnrnvoid ReadFromCom()rnrn HANDLE hSerial = NULL;rn DCB PortDCB;rnrnrn hSerial = CreateFile(L"COM2:",rn GENERIC_READ | GENERIC_WRITE,rn 0,rn NULL,rn OPEN_EXISTING,rn FILE_ATTRIBUTE_NORMAL,rn NULL);rnrn if(hSerial == NULL)rn rn printf("Fail to open COM2\n");rn return;rn rnrn //配置串口rnrn PortDCB.DCBlength = sizeof(DCB); rn // 默认串口参数rn GetCommState(hSerial, &PortDCB);rn PortDCB.BaudRate = CBR_9600;//9600; // baudrn PortDCB.ByteSize = 8; // Number of bits/byte, 4-8 rn PortDCB.Parity = NOPARITY; rn PortDCB.StopBits = ONESTOPBIT; rn if (! SetCommState(hSerial, &PortDCB))rn rn ///L"配置串口失败";rn printf("Fail to set COM2 1\n");rn return;rn rn ////配置超时值rn COMMTIMEOUTS CommTimeouts;rn GetCommTimeouts(hSerial, &CommTimeouts);rn CommTimeouts.ReadIntervalTimeout = MAXDWORD; rn CommTimeouts.ReadTotalTimeoutMultiplier = 10; rn CommTimeouts.ReadTotalTimeoutConstant = 10; rn CommTimeouts.WriteTotalTimeoutMultiplier = 50; rn CommTimeouts.WriteTotalTimeoutConstant = 100; rn if (!SetCommTimeouts(hSerial, &CommTimeouts))rn rn ///L"不能设置超时参数";rn //rn printf("Fail to set COM2 2\n");rnrn return;rn rnrn printf("Begin To Read\n");rnrn// BYTE byte = 65;rn// DWORD dwNumBytes = 0;rn// WriteFile(hSerial,&byte,1,&dwNumBytes,NULL);rn rn// printf("Over\n");rn AfxBeginThread(ReadThread,&hSerial);rn while(1);rnrnrnrnrnrnUINT ReadThread(LPVOID pParam) ////接收串口数据线程rn rn HANDLE hPort = *(HANDLE*)pParam;rn BYTE Byte;rn int iCounter = 0;rn DWORD dwBytes;rn char ReceiveBuf[1000]; ///缓冲区的大小 rn rn SetCommMask (hPort, EV_RXCHAR); ///只接收字符rn while (hPort != INVALID_HANDLE_VALUE) rn rn DWORD dwCommStatus;rn WaitCommEvent(hPort, &dwCommStatus, 0); //总是停在这里!!!!!!!!!!!!!!!rn SetCommMask (hPort, EV_RXCHAR); ///重新设置要等待的信号rn //// 接收数据rn do rn rn printf("AAAAAAAA\n");rn ReadFile(hPort, ReceiveBuf,1000 - 1, &dwBytes, 0); rn if(dwBytes > 0)rn rn ReceiveBuf[dwBytes] = 0;rn printf("%s\n",ReceiveBuf);rn rn while (dwBytes > 0 );rn if(iCounter == 0) ////没接到数据rn rn continue;rn rn rn ///////end whilern return 0;rnrnrnrnrn为什么这段代码总是停在 WaitCommEvent(hPort, &dwCommStatus, 0);rn就无法继续运行了呢rn求教啊
串口读取FPGA数据
小弟要写一个小程序,用GPIB来控制仪器,然后通过串口读取FPGA寄存器里面的数据,有一个别人写的很复杂的程序,但是封装太复杂了,本人软件基础一般,实在是看不懂,请大侠来指定一下。rnGPIB控制仪器已经可以了,现在就是串口通信读取FPGA不知道怎么弄,串口的类有别人封装好的。
请问在PB中如何读取串口的数据!!
万分感谢!!
用C#和MSComm如何读取串口数据
要从串口读取一个字符串,用VC6是如下写法rnVARIANT vResponse;rnchar *str;rnvResponse=m_Com.GetInput();rnstr=(char*)(unsigned char*)vResponse.parray->pvData;rnrnInput在VB6中正确的写法是这样的 rnDim SampleText as String rnSampleText=MSComm.Input rnrn而我用C#照其这样写 rnstring SampleText; rnSampleText=axMSComm1.Input; rn结果报错说无法将Object对象隐式转换为Stringrn用Convert.ToString()显式转换,接收到的信息在文本框中显示为“ System.Byte[] ”rn有高手知道怎么解决吗?
如何及时读取串口收到的数据。
rn  不知有什么办法才能以最快的反应时间来读取串口收到的数据,类似于串口中断,但是不知道在应用程序中如何实现串口中断。。rnrn   现在我的程序当中,是不断的read,看是否有数,,有数就读,没有数就不读。。这种方法效率很低,, rn   不知各位大虾有什么好的方法。。。rnrn
如何读取串口的BCD编码的数据?
从书中查到的BCD码是二-十进制码,共六位。rnPC串口通常用ASCII编码,如何读取?rn另外:什么是压缩BCD码?
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview