You are currently offline, waiting for your internet to reconnect

INFO: Possible Serial Baud Rates on Various Machines

This article was previously published under Q99026
Computers running Microsoft Windows NT, Windows 2000, or Windows XP may be unable to set the same serial baud rates due to differences in serial port hardware on various platforms and computers. These differences may be important to note when writing a serial communications application that runs on different Windows NT, Windows 2000, or Windows XP platforms.

The simplest way to determine what baud rates are available on a particularserial port is to call the GetCommProperties() application programminginterface (API) and examine the COMMPROP.dwSettableBaud bitmask todetermine what baud rates are supported on that serial port.
Some baud rates may be available on one machine and not on another becauseof differences in the serial port hardware used on the two machines. MostIntel 80x86 machines use a standard 1.8432 megahertz (MHz) clock speed onserial port hardware, and therefore most Intel machines can set the samebaud rates. However, on other platforms, such as MIPS, there is no standardserial port clock speed. MIPS serial ports are known to exist with 1.8432MHz, 3.072 MHz, 4.2336 MHz, and 8.0 MHz serial port clock chips. Future NTimplementations on other platforms may have different serial port clockspeeds as well.

Furthermore, certain requested baud rates are special-cased in the WindowsNT serial driver so that they will work. The following are these specialcases:
   MHz     Requested Baud    Divisor   Resulting Baud Rate (+/- 1)  ---------------------------------------------------------------   1.8432      56000            2              57600   3.072       14400           13              14769   4.2336       9600           28               9450   4.2336      14400           18              14700   4.2336      19200           14              18900   4.2336      38400            7              37800   4.2336      56000            5              52920   8.0         14400           35              14286   8.0         56000            9              55556				
The actual baud rate can be calculated by dividing the divisor multipliedby 16 into the clock rate. For example, for a 1.8432 MHz clock and adivisor of 2, the baud rate would be:
1843200 Hz / (2 * 16) = 57600
For all other cases, as long as the requested baud rate is within 1 percentof the nearest baud rate that can be found with an integer divisor, thebaud rate request will succeed.
3.10 3.50

Article ID: 99026 - Last Review: 11/21/2006 15:46:00 - Revision: 4.1

Microsoft Win32 Application Programming Interface

  • kbinfo kbapi kbcommport kbkernbase kbserial KB99026