串行端口(RS -232)连接C

我使用16位编译器(我正在使用Turbo C IDE)在C中完成串行端口RS-232连接。它包括头文件bios.h,其中包含从端口读取值的所有必需的功能。现在我想使用C 32位Mingw编译器从串口读取值。我正在使用Dev CPP作为我的IDE。在这里我找不到bios.h Mingw有没有特殊的头文件可以用于此目的?我正在使用32位编译器,因为在我的大学项目中,我得使用异常处理,我猜这在Turbo C中是不支持的。请帮助我。
请看看这里:

> RS-232 for Linux and Windows 1)
> Windows Serial Port Programming 2)
> Using the Serial Ports in Visual C++ 3)
> Serial Communication in Windows

1)您可以使用Windows(包括MinGW)以及Linux。作为替代,您只能使用代码作为示例。

2)分步教程如何在Windows上使用串行端口

3)您可以在MinGW上使用这一点

这里有一些非常非常简单的代码(没有任何错误处理或设置):

#include <windows.h>

/* ... */


// Open serial port
HANDLE serialHandle;

serialHandle = CreateFile("\\\\.\\COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

// Do some basic settings
DCB serialParams = { 0 };
serialParams.DCBlength = sizeof(serialParams);

GetCommState(serialHandle, &serialParams);
serialParams.BaudRate = baudrate;
serialParams.ByteSize = byteSize;
serialParams.StopBits = stopBits;
serialParams.Parity = parity;
SetCommState(serialHandle, &serialParams);

// Set timeouts
COMMTIMEOUTS timeout = { 0 };
timeout.ReadIntervalTimeout = 50;
timeout.ReadTotalTimeoutConstant = 50;
timeout.ReadTotalTimeoutMultiplier = 50;
timeout.WriteTotalTimeoutConstant = 50;
timeout.WriteTotalTimeoutMultiplier = 10;

SetCommTimeouts(serialHandle, &timeout);

现在可以使用WriteFile()/ ReadFile()来写入/读取字节。
不要忘了关闭你的连接:

CloseHandle(serialHandle);
http://stackoverflow.com/questions/15794422/serial-port-rs-232-connection-in-c

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:串行端口(RS -232)连接C