Member Login
Search
Jump to a Date
Sponsored Communities
Cool stuff
Twitter Feed
Neat Stuff

Visit our shop for nerds in control lifestyle products.
Thermal Overload
The threads that wouldn't die...
- PC reliability?
- Windows, real time
- PID loops
- PCs vs. PLCs
- Replacing people
- MS 'monopoly'?
- Software quality
- Where do we go from here?
- Why pay?
- PC reliability?
- Windows, real time
- PID loops
- PCs vs. PLCs
- Replacing people
- MS 'monopoly'?
- Software quality
- Where do we go from here?
- Why pay?
Fortune
"What is the robbing of a bank compared to the FOUNDING of a bank?"
-- Bertold Brecht
-- Bertold Brecht
RSS Feed
www.control.com/rss/
To get a personalized feed, become a member at no cost.
I have an AVR Microcontroller which send data to pc from serial port (rs-232) and get data from serial port (rs-232). also i should say that our AVR Microcontroller is in touch with pc just with 2 pins, [pin 3 (TD=Transmit data) and pin 2 (RD=Receive data)]. for example, Microcontroller send two number (A=1,B=2) to pc from serial port (rs-232) and visual c++ get it and add those number (A+B=3) then sends it to Microcontroller from serial port (rs-232). please give me an example which do this.
Sealevel Systems (http://www.sealevel.com) includes code samples on the software CD that ships with all serial products. This C++ code sample shows you how to open a COM port, and send & receive data. In this example, data is sent and read at 460K bps, but standard windows ports are limited to 115K bps.
----- Begin Code Sample -----
#include "stdafx.h"
#include
#include
#include
int main(int argc, char* argv[])
{
char INBUFFER[500];
char OUTBUFFER[20];
DWORD bytes_read = 0; // Number of bytes read from port
DWORD bytes_written = 0; // Number of bytes written to the port
HANDLE comport = NULL; // Handle COM port
int bStatus;
DCB comSettings; // Contains various port settings
COMMTIMEOUTS CommTimeouts;
strcpy(&OUTBUFFER[0], "The quick brown fox jumped over the lazy dog. \n\r\0");
// Open COM port
if ((comport =
CreateFile("\\\\.\\COM5", // open com5:
GENERIC_READ | GENERIC_WRITE, // for reading and writing
0, // exclusive access
NULL, // no security attributes
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL)) == INVALID_HANDLE_VALUE)
{
// error processing code goes here
}
// Set timeouts in milliseconds
CommTimeouts.ReadIntervalTimeout = 0;
CommTimeouts.ReadTotalTimeoutMultiplier = 0;
CommTimeouts.ReadTotalTimeoutConstant = 100;
CommTimeouts.WriteTotalTimeoutMultiplier = 0;
CommTimeouts.WriteTotalTimeoutConstant = 100;
bStatus = SetCommTimeouts(comport,&CommTimeouts);
if (bStatus != 0)
{
// error processing code goes here
}
// Set Port parameters.
// Make a call to GetCommState() first in order to fill
// the comSettings structure with all the necessary values.
// Then change the ones you want and call SetCommState().
GetCommState(comport, &comSettings);
comSettings.BaudRate = 460800;
comSettings.StopBits = ONESTOPBIT;
comSettings.ByteSize = 8;
comSettings.Parity = NOPARITY;
comSettings.fParity = FALSE;
bStatus = SetCommState(comport, &comSettings);
if (bStatus == 0)
{
// error processing code goes here
}
while(!kbhit())
{
bStatus = WriteFile(comport, // Handle
&OUTBUFFER, // Outgoing data
48, // Number of bytes to write
&bytes_written, // Number of bytes written
NULL);
if (bStatus != 0)
{
// error processing code here
}
bStatus = ReadFile(comport, // Handle
&INBUFFER, // Incoming data
500, // Number of bytes to read
&bytes_read, // Number of bytes read
NULL);
if (bStatus != 0)
{
// error processing code goes here
}
// code to do something with the data goes here
}
CloseHandle(comport);
return 0;
}
It is easy to use MSComm control as compared to API.
Thanks for commenting.
If it is possible through the MSComm control then how?
Please guide me coz i am doing the same thing.
Kashif
affirmativeus@yahoo.com
If it is possible through the MSComm control then how?
Please guide me coz i am doing the same thing.
Kashif
affirmativeus@yahoo.com
Hello,
i tried ur code but using WINAPI. when i execute the application, i am getting read file status = 1 which is fine but when i try to read the INBUFFER data i am not able to get proper data. i written a for loop to read the INBUFFER data
can you please guide me where i am going wrong
Reagrds
Ms. Shrividya
(shri.88vidya [at] rediffmail.com, rnd [at] eecindia.com)
i tried ur code but using WINAPI. when i execute the application, i am getting read file status = 1 which is fine but when i try to read the INBUFFER data i am not able to get proper data. i written a for loop to read the INBUFFER data
can you please guide me where i am going wrong
Reagrds
Ms. Shrividya
(shri.88vidya [at] rediffmail.com, rnd [at] eecindia.com)
SetCommTimeouts() returns 0 on failure
Your use of this site is subject to the terms and conditions set forth under Legal Notices and the Privacy Policy. Please read those terms and conditions carefully. Subject to the rights expressly reserved to others under Legal Notices, the content of this site and the compilation thereof is © 1999-2009 Nerds in Control, LLC. All rights reserved.
Our Advertisers
Help keep our servers running...
Patronize our advertisers!
Patronize our advertisers!




