很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。如何在C#中通过USB发送和接收?那么Serial和LPT呢?
我试过使用Readline()并且数据被丢弃,我尝试使用Read()但我不确定如何使用防错方法来做到这一点,因为我可能会一个接一个地收到几个数据包,但我没有知道会有另一个数据包进来的方法。在数据包之间BytesToRead是0,所以我不能使用它。将数据读取到缓冲区时,您有计时器或让线程休眠以允许所有数据包到达?我迷路了。不知道接下来要尝试什么。我应该提一下,我不能保证从串行端口出来的字符串将以\n或\r或\r\n结尾。我只需要一种万无一失的方法来读取当用户按下PRINT时来自秤的所有数据包。有人在这里回答了我喜欢的想法-等待所有数据包的一定时间,但他们删除了他们的回答。您有机会重新发布
我正在从串口读取数据。数据超出了规模。我现在正在使用Readline(),即使在我删除DiscardInBuffer()之后数据也会丢失。从串口读取数据的正确方法是什么?网上的例子太少了,我觉得这就像是无人问津的chalice。C#、WinCE5.0、HP瘦客户机、Compact框架2.0privatevoidWeighSample(){this._processingDone=false;this._workerThread=newThread(CaptureWeight);this._workerThread.IsBackground=true;this._workerThread
小梅哥串口部分学习part1串口通信发送原理串口通信发送的Verilog设计与调试串口发送应用之发送数据串口发送应用之采用状态机实现多字节数据发送串口通信发送原理1:串口通信模块设计的目的是用来发送数据的,因此需要有一个数据输入端口2:串口通信,支持不同的波特率,所以需要一个波特率设置端口3:串口通信的本质就是将8位并行数据通过一根信号线,在不同的时刻传输并行数据的不同位,通过多个时刻,最终将8位并行数据全部传出4:串口通信以1位的低电平标志串行传输的开始,待8位数据传输完成之后,在1位的高电平标志传输的结束5:控制信号,控制并转串模块什么时候开始工作;什么时候一个数据发送完成?须有一个发送开
只是想知道我们如何在C#中清除我串口的接收缓冲区。似乎接收缓冲区中的数据一直在累积。例如传入的数据流为:[数据A]、[数据B]、[数据C]。我想要的数据只是[数据C]。我正在考虑这样做,当我收到[DataA]和[DataB]时,我会做一个清除缓冲区。仅当收到[DataC]时,我才继续处理。这是在C#中执行此操作的方法吗? 最佳答案 如果您使用的是System.IO.Ports.SerialPort,那么您可以使用以下两种方法:DiscardInBuffer()和DiscardOutBuffer()刷新缓冲区。如果您正在从串行端口读取
这是从串口读取数据的代码。为了简单起见,让我们通过单击按钮来完成;privateSystem.IO.Ports.SerialPortserialPort;privatevoidbutton1_Click(objectsender,EventArgse){if(serialPort==null)serialPort=newSerialPort("COM7",4800,Parity.None,8,StopBits.One);//COM7ishardcodedjustforthesakeofexampleif(!serialPort.IsOpen)serialPort.Open();text
我正在尝试使用.NET2.0SerialPort的.BaseStream属性进行异步读写(BeginWrite/EndWrite、BeginRead/EndRead)。我在这方面取得了一些成功,但一段时间后,我注意到(使用ProcessExplorer)应用程序正在使用的Handles逐渐增加,偶尔还有一个额外的线程,这也增加了Handle计数。每次出现新线程时,上下文切换率也会增加。应用程序不断向PLC设备发送3个字节,并以57600的波特率返回800左右字节。最初的CSwitchDelta(同样来自ProcessExplorer)大约为2500,这看起来非常高。每出现一个新的线程,
我只是在回顾我在CF2.0上用C#编写的与串行端口通信的一些代码。我没有使用DataReceived事件,因为它不可靠。MSDNstatesthat:TheDataReceivedeventisnotgauranteedtoberaisedforeverybytereceived.UsetheBytesToReadpropertytodeterminehowmuchdataislefttobereadinthebuffer.我用read()轮询端口,并有一个委托(delegate)在读取数据时处理数据。我还在某处读到“轮询不好”(没有给出解释)。知道轮询为什么不好吗?除了通常的线程警告
我搜索如何获取串口连接的素材的设备名称。我有两种不同类型的Material可以在上面连接。第一个:打印机(只接收数据,不返回任何数据)第二个:余额(只发送数据,不接收任何数据)如何区分这两种Material?谢谢。 最佳答案 试试这个:ManagementObjectCollectionManObjReturn;ManagementObjectSearcherManObjSearch;ManObjSearch=newManagementObjectSearcher("Select*fromWin32_SerialPort");Man
我使用USB将Arduino连接到我的笔记本电脑,我可以使用Processing读取串行数据。有什么方法可以将这些数据实时导入到本地网络浏览器中吗?例如,显示串行端口值的文本字段?它不必连接到互联网。Processing的JavaScript版本不支持以下代码,这本来是理想的解决方案。处理代码为:myPort=newSerial(this,Serial.list()[0],9600);//readabytefromtheserialportintinByte=myPort.read();//printitprintln(inByte);//nowsendthisvaluesomewhe