Steve made a great explanation. About the stop bits, 1 or 2: When transmitting a string of data, the sender just pump data (encapsulated with start and stop bits) in sequence. The receiver needs to save or do something with each received byte, it demands some time, and normally this is done right after sensing (and during) the stop bit time. Old and slow machines sometimes needs an extra time. Remember that old machines are not so easy to program or change parameters, so to increase the delay between transmitted bytes they choose to program the length of the stop bit. Standards were created, so you can program 1, 1¸ or 2 stop bits. In real, it doesn't matter how long the stop bit takes. If the receiver can wait without complains, the transmitted stop bit can be as long as you want, since the next byte will starts only with the next start bit. A long time in the same level can be identified by some protocols as special condition of "HALT", and it is a way the transmitter has to tell the receiver to close the reception section, or something like that. It doesn't make sense to program the receiver with more than one stop bit, since with ONE STOP BIT it will works with data arriving with 1, 1¸ or 2 stop bits, always. The stop bit (space, RS232=High or TTL=Low) is required to the receiver to make sure it still in sync with the transmitter. The receiver *expects* the space level at the stop bit sample time, if a "mark" level (RS232=Low or TTL=High) is sensed at the stop bit time, a "Framing Error" will be posted, it means that something is wrong and the stop bit was not there, so the received byte *should* be incorrect. The start bit is the same level of any other "1" bit in the data byte, so if the receiver awakes in the middle of a byte being send and consider any "1" data bit as being the "start bit", it will sync out of order, it will sample and count 7 or 8 bits time, but what should be the stop bit will happens in the middle of the next byte, and it could be a "1" bit, so it gives you "framing error". This can also happens if the transmitter is using a different baud rate, happens more often if the transmitter is using a baud rate lower then the receiver. The synchronization problems with slightly different baud rates can be observed in a text and graphic representation I did months ago here: http://www.ustr.net/8051pc/starting.htm go to the middle of the page, "Talking about Synchronization". -------------------------------------------------------- Wagner Lipnharski - UST Research Inc. - Orlando, Florida Forum and microcontroller web site: http://www.ustr.net Microcontrollers Survey: http://www.ustr.net/tellme.htm