Click here to Skip to main content
15,891,033 members
Everything / Serial port

Serial port

serial-port

Great Reads

by ToughDev
In my previous article I provided some information on the Tektronix TDS 340 100 MHz digital storage oscilloscope and instructions
by ToughDev
How to interface NEO-6M GPS module to PIC
by Marco Bertschi
Serial communication with an Arduino Board via C# and the SerialPort class from the System.IO.Ports namespace
by NewPast
Using serial or paraller port to control a machine

Latest Articles

by ToughDev
Ultimate 68K Macintosh emulator
by ToughDev
In my previous article I provided some information on the Tektronix TDS 340 100 MHz digital storage oscilloscope and instructions
by ToughDev
How to interface NEO-6M GPS module to PIC
by NewPast
Using serial or paraller port to control a machine

All Articles

Sort by Score

Serial port 

4 Aug 2011 by CPallini
You should use int a = 1; printf("Press a key: \n"); scanf("%d", &a) ;//...
6 Apr 2016 by Dave Kreskowiak
A web application was a very poor choice. Unless the scale, communicating over a serial port, is directly connected to the web server you can't talk to the scale. As you've probably figured out by now, client-side javascript in a browser has no access to the PC's serial ports. Javascript can...
24 Nov 2012 by OriginalGriff
The problem is that the serial port is doing something called buffering - it is receiving the data from your microcontroller while your software is waiting for you to press a button on the keyboard. When you press the button, it fetches the next input line - which is the oldest, not the newest -...
24 Dec 2013 by Sergey Alexandrovich Kryukov
Just some recommendations, but they might be a key solving your performance problem and the problem with loosing data.Do all serial port communications in a separate thread and use only the synchronous read. Your thread is supposed to be blocked at the reading calls when the data sent is not...
1 Dec 2015 by George Jonsson
You need to sit down and think about what you are doing.Your method serialPort_DataReceived is, most likely, triggered every time a byte is received.So when a byte is received, what do you do?Well, if you expect a certain number of bytes to be received you can read the available...
6 Apr 2016 by F-ES Sitecore
If you're pushing this site out to selected clients then you could do something like write a Windows Service that responds to HTTP requests and interacts with the hardware ports and sends an HTTP response back to the calling client. That way your webpage could use normal jQuery ajax to query...
22 Apr 2011 by Nish Nishant
You need to call ReadByte in a loop until it returns -1. And then you can probably use File::WriteAllBytes to write it to a file. If you want to append to the file, you'd need to write more code (something similar to what you already have now.And I don't think it makes sense to display...
22 Jun 2011 by Sergey Alexandrovich Kryukov
Of course if won't work this way. You can send data to serial port from the button event handler, but you cannot read this way. This is blocking operation.You need to read all the time in a separate thread. When data comes, it will read it; you need to interpret data on the fly.Please...
4 Aug 2011 by Guyverthree
C pallini is correct the problem that you are having is that a char is only a single byte.an int can be 2 4 or even sometimes 8 bytes in the length this is why the stack is corrupting.You are trying to put 2/4/8 bytes into the address space of a single byte.This then overwrites the...
4 Aug 2011 by Chuck O'Toole
This may not be the solution to your stack corruption but there is another problem in that code.All of your strings you are sending over the serial line are declared to be 8 characters and you transmit 8 characters but the strings are only 6 characters (7 if you count the null at the...
23 Sep 2011 by E.F. Nijboer
This is a classic producer/consumer problem that needs synchronization to make it work properly. It's just like in real life, it is impossible to write both at the same time using just one pencil. You need to make rules about sharing or make one person responsible for writing stuff...
15 Aug 2012 by Kenneth Haugland
The documentation from Microsoft should help you along:http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx[^]Here is a site with complete code:http://www.dreamincode.net/forums/topic/35775-serial-port-communication-in-c%23/[^]
27 Oct 2015 by Patrice T
Quote:I am expecting the result data of C# application like the result from Matlab and XCTU. I have tried with SerialPort encodings(ASCIIEncoding, Unicode, Latin). But nothing works. Help me. this is my code,The trick is simple, you receive binary data from serial port, don't convert it.Your...
23 Dec 2015 by OriginalGriff
You can't guarantee that time frame with windows: it's a preemptive multitasking OS, so it decided when your app gets to run, and for how long. If it decides to suspend you at the wrong time, then you will miss the time slot and there is nothing you can do about it.My personal preference...
8 Jul 2018 by OriginalGriff
Start by checking your communications settings using HyperTerminal or similar - when you can read the data properly using that, transfer those settings (Baud rate, bits per char, parity, stop bits) into your code and see if you can duplicate what hyperterminal shows. Until you can do that, you...
6 Apr 2011 by DonTone
Hi,I have a simple question about a problem that surely someone has already encountered. I have a legacy device that communicates (communicated) with another device through RS-485. It does this with its own protocol, which is quite simple and embedded in there are raw ARP, IP, TCP, etc...
25 May 2011 by Sergey Alexandrovich Kryukov
Do you accept Rich text format string coming out from a serial port? :-)I doubt. Why not using a TexBox? Or, better yet, a ListBox (convenient to append one message at a time).Don't try to mix serial port communication and System.Windows.Forms. Separate concerns. Find out how to work with...
22 Jun 2011 by Tarun Mangukiya
See at MicrosoftHow to access serial and parallel ports[^]Thanks.
8 Mar 2012 by Aaron Pate
I was just wondering, Is there a way I could display data from a serial port on a chart in real time, if not by just refreshing the web page?Basically I have a radio receiver hooked up to my computer by a serial port. I need to get the data so i can plot a chart that will show the frequency...
4 May 2012 by OriginalGriff
I would try closing the serial port, removing the handler, and the opening the port again.
8 Jun 2012 by Amund Gjersøe
Your timer should not be necessary, and let port.RecievedBytesThrescold=1 (default). The only thing you can be sure of if you set it to 21, is that it will be at least 21 long. My suggestion is to do the buffering your self:byte[] buffer = new byte[50];int endOfBuffer = 0;void...
26 Oct 2012 by CPallini
If you are programming for Windows, I suggest you to use directly Windows API. They are very well documented documented[^] and relatively simple.
29 Nov 2012 by André Kraak
'0x01' is not the same as 0x01 (without the quotes).For example 0x77 is a hexadecimal representation of the value 119, which in turn is character[^] 'w'.Remove the quotes from the second format and it should work.char...
18 Apr 2013 by Sergey Alexandrovich Kryukov
Probably you mean SerialErrorReceivedEventArgs.EventType, its type is not string but...
2 May 2013 by Sergey Alexandrovich Kryukov
Please see my comment to the question. The whole idea is wrong: you never wait for anything in your code. Are you trying to do a spin wait? This is always an evil. Either use a timer events or a separate thread (better); sleep between sending cycles. But even this could be wrong, due to the...
2 May 2014 by OriginalGriff
Firstly, stop opening and closing the port: it won't help and it may cause data to be lost. While the port is closed, anything received by the physical port will be thrown away...and it allows other applications to "grab" the port as well. And you don't need an event handler to pass the data...
28 Mar 2015 by Sergey Alexandrovich Kryukov
Hey Sergey! Thiago wrote:I actualy didn't know this. Thanks for telling me! Someone formatted it for me. Ok, I've been told that SetPixel is too slow, but I am afraid I don't know what else to do. Do you have tips? Could you recommend a real-time plot library?Thanks,ThiagoYou are...
22 Jun 2015 by OriginalGriff
We can't tell you - because we don't know.You need to talk to the manufacturers, and try to get some idea of the communications protocol from them. You can't "guess" how to talk to it - there are far, far to many different ways to do it. If you had the communications software it's possible...
23 Dec 2015 by CPallini
I guess that:There is no noticeable performance difference between method (1) and (2).There is no way to guarantee the within 15ms responsivity.
25 Feb 2016 by Patrice T
First optionSerialDataReceivedEventHandlerEvent handler is there to prevent consuming resources while continuously checking the next char.
18 May 2016 by Patrice T
Advice:- use a char array to store the data received from serial. You can't have expectations about what is the data you are receiving. Never receive in a string and then transform to char.- To debug the serial link, replace 1 of the devices with a computer using a terminal emulator. it will...
19 Jul 2016 by Patrice T
Quote:I need to display something when I receive a data. Could u tell me how to fix my code? I think invoking new EventHandler doesn't work correctly.There is nothing to fix, you need to rewrite your code.But first of all you need to understand how serial port is working. It is slooooow,...
15 Sep 2016 by CPallini
You never assign a valid value to the COMPort variable.You should do soemthing similar toCOMPort = New SerialPort()' set the various parameters of the serial port hereSee SerialPort Class (System.IO.Ports)[^].
26 Sep 2017 by OriginalGriff
Try setting the DtrEnable[^] and RtsEnable[^] properties to true: it may be that the unit expects hardware handshaking that HyperTerminal is setting high. But also try adding the data from your device to the string in your DoUpDate method: private void DoUpDate(object s, EventArgs e) {...
7 Dec 2017 by Jochen Arndt
You are handling receiving in an asynchronous event. That is triggered when new data are available. In your case port.BytesToRead is one with the first event. Once the event has been handled (one byte is read) it returns. Meanwhile additional bytes has been received and the event has been...
2 Jun 2018 by Patrice T
Quote: The code is compiling but there is no data received. I fear your problem is that serial port is slooow, but you close the port immediately after sending your data. You need to keep the port open to give it a chance to receive data from logger. Since serial port is slow, the handler will...
7 Jun 2018 by Jochen Arndt
Note: Answered this on a repost of this question but going to add it here as well because the repost might get deleted. Added also some more information. I still don't think that there is a need for a ring buffer here. You already have a buffer: rxBuffer. To make that a ring buffer all you...
22 Jul 2018 by Jochen Arndt
The data received handler is executed in another thread. That is why you have to use Invoke to update the content of your text box from. Similar applies to the DataToSetandGet variable used there to store the received string. You can't use it from other threads (like the GUI / main thread as in...
21 Mar 2019 by OriginalGriff
Start by communicating in both directions using Hyperterminal or similar: establish that coms is possible and exactly what parameters are needed. Then hard wire those parameters in and do a basic test without using events to ensure that your code is basically connected. Expand that to use your...
21 Jul 2019 by CPallini
Why are you using a timer for reading? Use the DataReceived[^] event handler instead. See, for instance Serial Comms in C# for Beginners[^].
2 Oct 2019 by Maciej Los
Wel... Start here: Ready-to-use serial port enumeration list box[^] For further details, please see: SerialPort.GetPortNames Method (System.IO.Ports) | Microsoft Docs[^] [EDIT] There's no guarantee that SerialPort.GetPortNames method will return the names of ports. But, there's work-around....
13 Sep 2021 by k5054
Assuming that you're using linux ... I think you should have a /dev/ttyUSB0 or /dev/ttyUSB1. That's what I get for a similar device connected to either a Rasberry Pi or my main system running Fedora 33. I think maybe I've seen /dev/ttyUSB1 when...
5 Oct 2022 by Richard Deeming
Try something like this: using (var searcher = new ManagementObjectSearcher("SELECT DeviceID, Caption FROM WIN32_SerialPort")) { string[] portnames = SerialPort.GetPortNames(); var ports = searcher.Get().Cast()...
7 May 2023 by ToughDev
In my previous article I provided some information on the Tektronix TDS 340 100 MHz digital storage oscilloscope and instructions
23 Aug 2023 by CHill60
There are many resources here on CodeProject - I suggest you start with the following Serial port[^] Serial Port Programming Part 1 – A (Very) Brief Introduction[^] Basic serial port listening application[^] Serial Comms in C# for Beginners[^]
9 Mar 2011 by OriginalGriff
Without seeing the code you are actually using, it is difficult to work out what is happening. However, it may be worth you changing from Timer based serial port to event based: Handle the SerialPort.DataReceived event instead of doing it every x ms.The File/SerialPort difference could be...
16 Apr 2011 by OriginalGriff
First thing to do:Open HyperTerminal (or similar) set up the com port, the baud rate, bpc and stop bits.Try to talk to your microcontroler using the keyboard. If that works, then move on to step two. If it doesn't work, then find out why first. It may be control lines (RTS/CTS etc.) it may...
20 May 2011 by barneyman
it looks like that product outputs the NMEA over the com port so another external device can consume it - not really what you're afterEither connect another computer with a null modem cable (or a computer to itself if it has 2 com ports) or use a virtual serial driver that understands how to...
25 May 2011 by Richard MacCutchan
You don't actually say which bit is causing you the biggest problem, but this[^] is a useful page on serial port handling.
26 May 2011 by Ruard
I don't know if this is really going to help but you can clear the buffers after connecting:SerialPort.DiscardOutBuffer()SerialPort.DiscardInBuffer()and add some delay (like Sleep(100);) between mySerialPortObj.SendFunc("{3QFG}"); and string receivedString =...
1 Jun 2011 by Mathew Crothers
Start by looking at reference and examples here http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx[^].You need to open a com port with 300baud, no parity, 8 data bits and 1 stop bit.After that you can create a stream to write and read from the serial port.
26 Jul 2011 by OriginalGriff
Probably, your problem is that you are calling DiscardInBuffer so often. If your VB code is out of sync with your Arduino code (and lets face it, it will be since the Arduino is continuously pumping data in realtime with a brief delay, and the VB is working when windows feels like it) There is a...
28 Aug 2011 by OriginalGriff
Assuming you have a connection to your database, use the following SQL Command string:"INSERT INTO TB (G_P) VALUES('" + "OC:OO:9F:A0:A3" + "')"Normally, I would also recommend that you use a parametrized query, but get it working first!
3 Nov 2011 by OriginalGriff
Serial Ports are buffered, both in the hardware and within Windows so there is little risk of overrun, unless you are taking a stupidly long time in the handler - remember that event handlers are not interrupts, so the hardware can continue buffering data perfectly happily while you work with...
9 Nov 2011 by OriginalGriff
Don't abort the thread.Instead, use a timeout on the SerialPort (SerialPort.ReadTimeout Property[^] which will cause the read operation to throw a timeout exception). Use a semaphore to tell the thread to terminate when it can, and let it close down in an orderly way.
12 Nov 2011 by OriginalGriff
It freezes because you are doing a blocking Read call , having set the timeout to zero. That means that the Read will not return until Buffer.Length characters have been read - the error timeout has been disabled by the zero you wrote to it. If te Arduinoi does not supply at least Buffer.Length...
8 Apr 2013 by Sergey Alexandrovich Kryukov
Strange entangled code. I cannot see where you add a handler to an invocation list of the instance of the event DataRecieved. Why are you trying to read data in the event handler which itself should be called when data is received? Why you invoke it? Invocation will cause a call in the UI...
23 Jan 2012 by LittleYellowBird
You need to look at the specification for your Signboard. There you should find the protocol and the commands that control each aspect of it's use including the brightness.You need to break the problem down into smaller parts. You will need code to communicate over the Serial port (there are...
23 Jan 2012 by Sergey Alexandrovich Kryukov
You need to use the class System.IO.Ports.SerialPort, please see http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx[^].Generally, you will need to code an exchange protocol in a separate thread.Everything else depends on the specification of your device on the other...
10 Feb 2012 by Jochen Arndt
You are calling ClearCommError() but did not check the error value. Maybe that will help you finding the problem.You are checking if there are more bytes available than your buffer can hold. That's good. But if this happens, you should call the receive function again immediately.You are...
7 Mar 2012 by CPallini
You should escape backslashes in C/C++, writemyPort = CreateFile("\\\\.\\COM14",..
13 Mar 2012 by Dave Kreskowiak
A null is nothing but a byte value of 0. So, scan your buffer after the read and look for a 0. There's your null.Unless, of course, youre dealing with Unicode strings, in which case, it's two 0 values in a row.
18 Apr 2012 by Jochen Arndt
This line contains multiple errors:CreateFile(port_name,GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN,NULL);port_name is not initializeddwCreationDisposition must be OPEN_EXISTING for serial portsdwFlagsAndAttributes should be 0 for...
24 Apr 2012 by Wes Aday
You can do myComport.Handshake = (Handshake)Enum.Parse(typeof(Handshake), "None");Replace "None" with the string that you read out of your ini file.
6 Jul 2012 by SoMad
I don't actually use any of these serial port sniffers, so I am afraid I cannot recommend one. If you are dead set on this approach, please just ignore this post.I prefer doing end-to-end verification of the data and normally connect two serial ports with a null modem cable, send stuff out...
10 Jul 2012 by Espen Harlinn
This might help: Virtual Serial Port Driver[^]If you have two serial ports on your computer, Sorens' suggestion is probably cheaper. Best regardsEspen Harlinn
29 Aug 2012 by khn1o1
I want to make an application using vb.net by which i can make calls through connecting my phone though serial port. How can i do this?
29 Aug 2012 by Sandip.Nascar
Indeed you need to use TAPI (Telephony API)Here are few links which will give you some indepth knowledge in TAI and VB.NETWorking with TAPI 3.x from .NET[^]http://msdn.microsoft.com/en-us/library/windows/desktop/ms734257(v=vs.85).aspx[^]Hope this helps.cheers
30 Aug 2012 by ridoy
http://www.java2s.com/Code/Java/Development-Class/ReadfromaSerialportnotifyingwhendataarrives.htm[^]http://stackoverflow.com/questions/589334/how-to-read-and-write-from-the-serial-port-with-java[^]http://henrypoon.wordpress.com/2011/01/01/serial-communication-in-java-with-example-program/[^]...
8 Dec 2020 by ranjith m amin
I am doing project in which i need to access serial port and read the data from , write data into it. How can i do this in Java.Please Help Me ..Thanks in advance
14 Sep 2012 by Jochen Arndt
See CreateFile()[^] and Communication Functions[^] in the MDSN. All functions are Windows API functions that can be used with the Express editions.
29 Jan 2013 by CPallini
You should connect the LEDs to a microcontroller. Your application, in turn, should serially communicate with the microcontroller itself.There are many available tutorials[^] on serial communication with C#.
2 Apr 2013 by Jochen Arndt
To get code that might work you should:Initialize the serial port (baud rate, number of bits, parity, flow control).Perform a dummy read to clear the status register bits.Replace the delay loop by code that checks if new data are available by testing bit 0 (Data Ready) of the line status...
23 Apr 2013 by Sergey Alexandrovich Kryukov
None of HTML codes or a Web application cannot access such things (on a client system). You need to use some programming system, some programming language. Communication via a RS-232 port is really easy, but it depends on your platform and programming system (language, compiler, libraries) you...
2 May 2013 by CPallini
What are trying to do? If your communuication really needs an accurate synchronization (how accurate must be the 100 milliseconds period), you are going to fail (Windows OS cannot provide it).
13 Aug 2013 by The_Inventor
THIS:// Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(471, 262); ...
19 Nov 2013 by Ron Beyer
Serial is just a way of exchanging byte data with a device, its not really like USB where the device exchanges hardware descriptors with the host before it "connects". On top of that, there are no standard interfaces for the devices you listed to get a hardware id from them, they would have to...
24 Dec 2013 by GrooverFromHolland
Hi all,I am receiving 5 data packets per second and loosing packets because handling the data received event and processing data takes too much time.How can I improve my code?This is the relevant code:private void portCs_Datarecieived(object sender, SerialDataReceivedEventArgs...
12 Apr 2014 by OriginalGriff
Oh, good grief...You need to take a big step back and brush up on how Windows in general and Events in particular work.Look at what you are doing: private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)// split the data { ...
11 Jul 2014 by Rob Philpott
There could be a few things wrong here. The VB array bounds was a good spot.Chars in .Net are 16bit, and that could be the problem. You're working with binary data so don't use them. Just checking the documentation for the SerialPort class, default encoding is ASCII, 7 bit. Anything above...
15 Sep 2014 by George Jonsson
You should decide on a format that works for you.The first choice you have is to decide between a binary or ASCII protocol.Both have their pros and cons, but simply putASCII is more readable, easier to debug and good if you want to hook your device up with HyperTerminal.It is a bit...
23 Nov 2017 by Sicppy
I am trying to emulate communication between an existing piece of software and hardware, using Advanced Serial Port Monitor I was able to come up with this information about the communication.In/out queue size 1024/512Purge the serial port: RXABORT, RXCLEAR, TXABORT, TXCLEARSet timeouts:...
24 Dec 2014 by Sicppy
Alright I solved my problem, I'll post the code and explanation here if anyone is interested.The DCB struct requires a C++ class known as a bitfield, which C# does not have, so instead they have a field called "Flags" stored as a UInt32. They have their own melarchy set up there as to how...
28 Dec 2014 by Jochen Arndt
It seems that your device is configured for hand shaking by default. You can (and should) use tcsetattr to configure your device. You may also try to use the TIOCMBIS ioctl command to set the DTR and RTS state.You can only set the state of the output pins RTS and DTR. The state of the input...
2 Mar 2015 by Sergey Alexandrovich Kryukov
You misunderstood Control.Invoke. This is not event invocation, so your object sender and EventArgs arguments are superfluous. Having this made-up artificial limitation, you have done bad thing: passing the text through the outer context relative to your method. Instead, you should use the event...
13 Mar 2015 by bling
Take a look at this line:tx = ReadFile(hCom,&in,1,&num,NULL);tx is declared as int but ReadFile returns BOOL. Your code should check the call for success / failure.num will have the number of characters read (eg. 0 or 1). Your code should check this before attempting to print...
10 Apr 2015 by Member 11314519
First of all: the ReadTimeout property should be setted once, i prefer just befor the opening action.over the internet is full of snippet you could read, msdn has its own official way to read Serial Port, even if it ain't aiming to performance...You should consider that the DataReceived...
22 Jun 2015 by User 59241
I refrained from answering your previous question because really where to start. The cost of the vendor software is probably going to be insignificant compared to the time you will need to spend here.I can give you a generic approach that I would employ in this situation.1. Obtain a...
4 Jul 2015 by OriginalGriff
Google is your friend: Be nice and visit him often. He can answer questions a lot more quickly than posting them here...A very quick search gave half a million hits: Google "serial port and AT Command c#"[^]In future, please try to do at least basic research yourself, and not waste your...
6 Nov 2015 by Richard MacCutchan
Sorry, no one here is going to do your work for you. How could you accept a qualification based on someone else's work?
11 Nov 2015 by veena nair
the below sketch have a serial output at the end of the sketch. "(Serial.println(stringTwo);)"How to convert it to a socket output. I want to read the out using a c# program through lan network.===========Sketch============int LED= 2;int LED3= 3;int LED4= 4;int LED5=...
14 May 2016 by OriginalGriff
If those are individual bit traces you are looking at : 10101010 then basically, no - you can't: serial data bits are always nominally symmetric - and the pattern would be hard to repeat continuously unless you are really careful with data, start and stop bits and parity, and have some...
17 May 2016 by George Jonsson
There are quite a few different reasons why you might receive the wrong character.You are telling very little about your hardware setup, so I can only give general advice for how you can find the error.The most common is that you haven't configured the port correctly.Make dead sure you...
19 May 2016 by OriginalGriff
The problem is quite likely to be that you don't necessarily receive all the data in one event - Serial ports are slooooow, and data arrives byte-by-byte: so the DataReceived event will fire multiple times for each "message" received from your PDA device. It's quite possible that it will fire...
8 Jun 2016 by Sergey Alexandrovich Kryukov
Please see, for example, this manual: Serial Programming Guide for POSIX Operating Systems.—SA
8 Jun 2016 by OriginalGriff
"Do i need any more connection?"Depends on how you have configured the port (and sometimes the hardware): for a "proper" loopback, it's a good idea to connect RTS to CTS (7 to 8 on 9pin serial connector), and DTR to DSR and DCD (1, 4, 6 on 9pin) to bypass any hardware handshaking, and to set...
20 Jul 2016 by User 59241
Use working examples as a starting point wherever possible. This shows how to read from a SerialPort:SerialPort.DataReceived Event (System.IO.Ports)[^]The order in which you set up and open the port is crucial (instantiate, set parameters and attach datareceived handler). Your example has...
19 Jul 2016 by Bernhard Hiller
You tagged your question with "WPF", but your code looks more like Windows Forms. Use a ViewModel with properties bound to the UI. The PropertyChanged event will automagically be sent to the UI thread, so you avoid all cross-threading issues (DataReceived happens always in a different...
10 Aug 2016 by OriginalGriff
Probably, there aren't : serial ports run at a fixed speed (known as a Baud Rate) which controls the maximum speed at which characters can be transfered between devices connected to it. If you serial port is set to 9600 baud, then you can transfer up to 960 characters per second (approximately)...
20 Sep 2016 by OriginalGriff
Serial ports are generally not "fast devices" - and when you use 9600 baud, you are saying "this port transfers 9600 bits of information per second at most". That's roughly 960 bytes per second (slightly less than that due to start, stop, and parity bits in fact) - which in terms of your PC...