469,106 Members | 2,258 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,106 developers. It's quick & easy.

GetCommState failed with error 87.

Hi,

i'm trying to set the serial port.(XP SP2, Visual Studio 2005). I use
the example code from MSDN "configuring a communications resource".

CreateFile pass through, however GetCommState return 0.With
GetLastError(), i get the error number 87, which means
"ERROR_INVALID_PARAMETER The parameter is incorrect. "
I'm sure the serial port works, because i can use another program to
read/write through it.

thx
Cheng

Jun 27 '08 #1
6 9304
On 14 Apr, 13:52, uvbaz <uv...@stud.uni-karlsruhe.dewrote:
i'm trying to set the serial port.(XP SP2, Visual Studio 2005). I use
the example code from MSDN "configuring a communications resource".

CreateFile pass through, however GetCommState return 0.With
GetLastError(), i get the error number 87, which means
"ERROR_INVALID_PARAMETER The parameter is incorrect. "
I'm sure the serial port works, because i can use another program to
read/write through it.
this isn't topical to comp.lang.c (even if your program
is written in C!). You need to ask on a Windows related news group.

Since you have an invalid parameter I strongly suggest
you post (to an appropriate ng) a short program that
illustrates your problem.
--
Nick Keighley

Jun 27 '08 #2
On 14 Apr., 15:47, Nick Keighley <nick_keighley_nos...@hotmail.com>
wrote:
On 14 Apr, 13:52, uvbaz <uv...@stud.uni-karlsruhe.dewrote:
i'm trying to set the serial port.(XP SP2, Visual Studio 2005). I use
the example code from MSDN "configuring a communications resource".
CreateFile pass through, however GetCommState return 0.With
GetLastError(), i get the error number 87, which means
"ERROR_INVALID_PARAMETER The parameter is incorrect. "
I'm sure the serial port works, because i can use another program to
read/write through it.

this isn't topical to comp.lang.c (even if your program
is written in C!). You need to ask on a Windows related news group.

Since you have an invalid parameter I strongly suggest
you post (to an appropriate ng) a short program that
illustrates your problem.

--
Nick Keighley
O.K.
Jun 27 '08 #3
On 14 Apr 2008 at 14:13, uvbaz wrote:
On 14 Apr., 15:47, Nick Keighley <nick_keighley_nos...@hotmail.com>
wrote:
>On 14 Apr, 13:52, uvbaz <uv...@stud.uni-karlsruhe.dewrote:
i'm trying to set the serial port.(XP SP2, Visual Studio 2005). I use
the example code from MSDN "configuring a communications resource".
CreateFile pass through, however GetCommState return 0.With
GetLastError(), i get the error number 87, which means
"ERROR_INVALID_PARAMETER The parameter is incorrect. "
I'm sure the serial port works, because i can use another program to
read/write through it.

Since you have an invalid parameter I strongly suggest
you post
[snip]
> a short program that illustrates your problem.

O.K.
You forgot to post the short program!

Jun 27 '08 #4
On 14 Apr., 19:14, Antoninus Twink <nos...@nospam.invalidwrote:
On 14 Apr 2008 at 14:13, uvbaz wrote:
On 14 Apr., 15:47, Nick Keighley <nick_keighley_nos...@hotmail.com>
wrote:
On 14 Apr, 13:52, uvbaz <uv...@stud.uni-karlsruhe.dewrote:
i'm trying to set the serial port.(XP SP2, Visual Studio 2005). I use
the example code from MSDN "configuring a communications resource".
CreateFile pass through, however GetCommState return 0.With
GetLastError(), i get the error number 87, which means
"ERROR_INVALID_PARAMETER The parameter is incorrect. "
I'm sure the serial port works, because i can use another program to
read/write through it.
Since you have an invalid parameter I strongly suggest
you post
[snip]
a short program that illustrates your problem.
O.K.

You forgot to post the short program!
Sorry.

#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
DCB dcb;
HANDLE hCom;
BOOL fSuccess;
char *pcCommPort = "COM1";

hCom = CreateFile( pcCommPort,
GENERIC_READ | GENERIC_WRITE,
0, // must be opened with exclusive-access
NULL, // no security attributes
OPEN_EXISTING, // must use OPEN_EXISTING
0, // not overlapped I/O
NULL // hTemplate must be NULL for comm devices
);

if (hCom == INVALID_HANDLE_VALUE)
{
// Handle the error.
printf ("CreateFile failed with error %d.\n", GetLastError());
return (1);
}

// Build on the current configuration, and skip setting the size
// of the input and output buffers with SetupComm.

fSuccess = GetCommState(hCom, &dcb);

if (!fSuccess)
{
// Handle the error.
printf ("GetCommState failed with error %d.\n", GetLastError());
return (2);
}

// Fill in DCB: 57,600 bps, 8 data bits, no parity, and 1 stop bit.

dcb.BaudRate = CBR_57600; // set the baud rate
dcb.ByteSize = 8; // data size, xmit, and rcv
dcb.Parity = NOPARITY; // no parity bit
dcb.StopBits = ONESTOPBIT; // one stop bit

fSuccess = SetCommState(hCom, &dcb);

if (!fSuccess)
{
// Handle the error.
printf ("SetCommState failed with error %d.\n", GetLastError());
return (3);
}

printf ("Serial port %s successfully reconfigured.\n", pcCommPort);
return (0);
}
Jun 27 '08 #5
uvbaz wrote:
On 14 Apr., 19:14, Antoninus Twink <nos...@nospam.invalidwrote:
>On 14 Apr 2008 at 14:13, uvbaz wrote:
>>On 14 Apr., 15:47, Nick Keighley <nick_keighley_nos...@hotmail.com>
wrote:
On 14 Apr, 13:52, uvbaz <uv...@stud.uni-karlsruhe.dewrote:
i'm trying to set the serial port.(XP SP2, Visual Studio 2005). I use
the example code from MSDN "configuring a communications resource".
CreateFile pass through, however GetCommState return 0.With
GetLastError(), i get the error number 87, which means
"ERROR_INVALID_PARAMETER The parameter is incorrect. "
I'm sure the serial port works, because i can use another program to
read/write through it.
Since you have an invalid parameter I strongly suggest
you post
[snip]
>>> a short program that illustrates your problem.
O.K.
You forgot to post the short program!

Sorry.

#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
DCB dcb;
HANDLE hCom;
BOOL fSuccess;
char *pcCommPort = "COM1";

hCom = CreateFile( pcCommPort,
GENERIC_READ | GENERIC_WRITE,
0, // must be opened with exclusive-access
NULL, // no security attributes
OPEN_EXISTING, // must use OPEN_EXISTING
0, // not overlapped I/O
NULL // hTemplate must be NULL for comm devices
);

if (hCom == INVALID_HANDLE_VALUE)
{
// Handle the error.
printf ("CreateFile failed with error %d.\n", GetLastError());
return (1);
}

// Build on the current configuration, and skip setting the size
// of the input and output buffers with SetupComm.

fSuccess = GetCommState(hCom, &dcb);

if (!fSuccess)
{
// Handle the error.
printf ("GetCommState failed with error %d.\n", GetLastError());
return (2);
}

// Fill in DCB: 57,600 bps, 8 data bits, no parity, and 1 stop bit.

dcb.BaudRate = CBR_57600; // set the baud rate
dcb.ByteSize = 8; // data size, xmit, and rcv
dcb.Parity = NOPARITY; // no parity bit
dcb.StopBits = ONESTOPBIT; // one stop bit

fSuccess = SetCommState(hCom, &dcb);

if (!fSuccess)
{
// Handle the error.
printf ("SetCommState failed with error %d.\n", GetLastError());
return (3);
}

printf ("Serial port %s successfully reconfigured.\n", pcCommPort);
return (0);
}
I compiled that, and I get
d:\lcc\mc71\test>tport
Serial port COM1 successfully reconfigured.

What is the problem?

Maybe you have a misconfiguration in your machine?
--
jacob navia
jacob at jacob point remcomp point fr
logiciels/informatique
http://www.cs.virginia.edu/~lcc-win32
Jun 27 '08 #6
uvbaz wrote, On 15/04/08 09:09:
On 14 Apr., 19:14, Antoninus Twink <nos...@nospam.invalidwrote:
>On 14 Apr 2008 at 14:13, uvbaz wrote:
>>On 14 Apr., 15:47, Nick Keighley <nick_keighley_nos...@hotmail.com>
wrote:
On 14 Apr, 13:52, uvbaz <uv...@stud.uni-karlsruhe.dewrote:
i'm trying to set the serial port.(XP SP2, Visual Studio 2005). I use
the example code from MSDN "configuring a communications resource".
CreateFile pass through, however GetCommState return 0.With
GetLastError(), i get the error number 87, which means
"ERROR_INVALID_PARAMETER The parameter is incorrect. "
I'm sure the serial port works, because i can use another program to
read/write through it.
Since you have an invalid parameter I strongly suggest
you post
[snip]
>>> a short program that illustrates your problem.
O.K.
You forgot to post the short program!

Sorry.

#include <windows.h>
<snip>

Now try posting it to a windows group as was suggested in the text that
Antoninus Twink snipped, something I'm sure he did deliberately to
misrepresent what Nick Keighley wrote.

If you post to a Windows group lots of people who know about Windows
specific problems will see you post and be able to answer, if you post
here there are far fewer experts on Windows.
--
Flash Gordon
Jun 27 '08 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by ralphdepping | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by kglaser89 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.