串口操作的原理:
对串口的整个操作过程一般分为四个步骤:
1. 打开串口;
2. 设置串口参数;
3. 读、写数据;
4. 关闭串口。
所以,我们的开发也将围绕这几个步骤进行。
实践:
1. 没有串口数据线的情况:
在这种情况下我们可以进行往串口写入数据的试验,利用串口监控工具验证数据是否真实的写入指定串口。
启动VC++ 6.0,新建一个window32 控制台类型的工程,名称为ComTest1
确定之后进入第二个步骤:
选中第二项,然后结束,此时我们就创建了一个名为ComTest1的工程,里面只有一个空的main函数。
接下来,我们将对串口进行四项操作,打开串口,设置串口参数,写入数据,关闭串口,代码如下:
#include "stdafx.h"
#include <stdio.h>
#include <WINDOWS.H>
int main(int argc, char* argv[])
{
//1.打开指定串口
HANDLE hComm = CreateFile("COM1", // 串口名称(COMx)
GENERIC_READ | GENERIC_WRITE, // 串口属性为可读/写
0, // 串口设备必须被独占性的访问
NULL, // 无安全属性
OPEN_EXISTING, // 串口设备必须使用OPEN_EXISTING参数
FILE_ATTRIBUTE_NORMAL, // 同步式 I/O
0); // 对于串口设备而言此参数必须为0
if (hComm == INVALID_HANDLE_VALUE)
{
//如果该串口不存在或者正被另外一个应用程序使用,
//则打开失败,本程序退出
return FALSE;
}
//2.设置串口参数:波特率、数据位、校验位、停止位等信息
DCB dcb;
GetCommState(hComm, &dcb); //获取该端口的默认参数
//修改波特率
dcb.BaudRate = 115200;
//重新设置参数
SetCommState(hComm, &dcb);
//3.往串口写数据
char lpBuffer[] = "Hello world!"; //将要写入的数据
DWORD nNumberOfBytesToWrite = strlen(lpBuffer); //将要写入的数据长度
DWORD nBytesSent; //实际写入的数据长度
WriteFile(hComm, lpBuffer, nNumberOfBytesToWrite, &nBytesSent, NULL);
//4.关闭串口
CloseHandle(hComm);
return 0;
}
下面可以用串口大师之类的串口监测软件对串口进行监测。