Go Premium for a chance to win a PS4. Enter to Win


baudrate 76800

Posted on 2004-04-28
Medium Priority
Last Modified: 2010-04-05
I need to interface with an electronic card that works at 76800 baud. I thought it was easy, but I found this speed is not standard. Can I set this speed ???
Question by:gianluca
  • 6
  • 5
LVL 17

Expert Comment

ID: 10937144
Try this

     m_hPort := CreateFile(PChar(sP),
                        GENERIC_READ or GENERIC_WRITE,
                        0, nil,
     if m_hPort = INVALID_HANDLE_VALUE then
// error create
       if GetCommState(m_hPort, dcbPort) then
                 { fill in the fields of the structure }
           dcbPort.BaudRate := 76800;
           dcbPort.ByteSize := 8;  // or ...
           dcbPort.Parity := NOPARITY;
          dcbPort.StopBits := ONESTOPBIT;
         dcbPort.Flags := 0;
            { flag bit fields:
            dcb_Binary, dcb_Parity, dcb_OutxCtsFlow, dcb_fOutxDsrFlow,
            dcb_fOutX, dcb_fInX, dcb_DtrFlow, dcb_RtsFlow
         SetCommState(m_hPort, dcbPort);

Author Comment

ID: 10937227
I try this way :

dcbPort.BaudRate := 76800;

but the actual baudrate sending out from port is 2.2 Kbaud
LVL 17

Expert Comment

ID: 10937348
I remember that long ago the divider for baud rate 38400 was 3.
Achieving 76800 was then impossible.
I've had little hope that maybe something was changed. :(
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.


Author Comment

ID: 10937507
yes you're right. the divider is 2 for 57600 and 1 for 115200.
But looking at CBR_xx constant, there is also a CBR_128000 and CBR_256000,

how is it possible ???
LVL 17

Expert Comment

ID: 10937552
I've just look at the same. Also CBR_56000.
Maybe try CBR_57600 and then CBR_56000 and watch what is going on?

Author Comment

ID: 10937748
today I can not test what happen when I set speed to CBR_56000, I will do tomorrow in office. Do you have another suggestion ?

PS : I already try CBR_57600 and CBR_115200 and it's OK. I've measured the bitlength using a digital oscilloscope and the timing is correct.
LVL 17

Expert Comment

ID: 10943342
I've tested function
    SetCommState(m_hPort, dcbPort);
from 100 to 256000 with step 100
For baud rates listed below the result is OK for other there is error 87 - invalid parameter and the value of baud rate remains such as last succesfull setting.

100 : OK
Each from this range OK
9600 : OK

10400 : OK

11500 : OK

12700 : OK
12800 : OK

14300 : OK
14400 : OK

16300 : OK
16400 : OK

19100 : OK
19200 : OK

22900 : OK
23000 : OK

28600 : OK
28700 : OK
28800 : OK

38100 : OK
38200 : OK
38300 : OK
38400 : OK

56000 : OK

57100 : OK
57200 : OK
57300 : OK
57400 : OK
57500 : OK
57600 : OK

114100 : OK
114200 : OK
114300 : OK
114400 : OK
114500 : OK
114600 : OK
114700 : OK
114800 : OK
114900 : OK
115000 : OK
115100 : OK
115200 : OK

128000 : 87
256000 : 87

Author Comment

ID: 10943413
How about 76800 ??? is it OK ???

Author Comment

ID: 10943423
You mean others from your list are not OK, right ???
LVL 17

Accepted Solution

mokule earned 375 total points
ID: 10943551
They are not OK.
I'm afraid the only solution is special card something like this


Author Comment

ID: 10943605
Yes I think so. Thanks a lot.

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…
Look below the covers at a subform control , and the form that is inside it. Explore properties and see how easy it is to aggregate, get statistics, and synchronize results for your data. A Microsoft Access subform is used to show relevant calcul…

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question