织梦CMS - 轻松建站从此开始!

罗索

vc中操作串行口com1和com2 源码

罗索客 发布于 2004-04-23 16:37 点击:次 
vc中怎么对串行口com1和com2操作? 源码
TAG:

#include <windows.h>
#include <stdio.h>
int main()
{
HANDLE h1;
unsigned char cmd1;
unsigned long write;
h1 = CreateFile("com1",
GENERIC_READ|GENERIC_WRITE,
0,NULL,
OPEN_EXISTING,0,NULL);

if(h1 == INVALID_HANDLE_value)
{ printf("Failed to open port1\\n");
return FALSE;
}
/////setup comm parameter
COMMTIMEOUTS cto = { 2, 1, 1, 0, 0 };
if(!SetCommTimeouts(h1,&cto))
{
printf("SetCommTimeouts failed");
return FALSE;
}
{
DCB dcb;
memset(&dcb,0,sizeof(dcb));
GetCommState( h1, &dcb);
dcb.DCBlength = sizeof(dcb);
dcb.BaudRate = CBR_38400 ;
dcb.fBinary = TRUE;
dcb.fParity = TRUE;
dcb.fOutxCtsFlow = 0;
dcb.Parity = ODDPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.ByteSize = 8;
if(!SetCommState(h1,&dcb))
{
printf("SetCommState failed\\n");
return FALSE;
}
}

cmd1 = 0x30;
WriteFile(h1,&cmd1,1,&write,NULL);
cmd1 = 0x11;
WriteFile(h1,&cmd1,1,&write,NULL);
cmd1 = 0x41;
WriteFile(h1,&cmd1,1,&write,NULL);
for(;;)
{
do
{
ReadFile (h1,&cmd1,1,&write,NULL);
}while(write==0);
printf("x ",cmd1);
}
/*
do
{
ReadFile (h1,&cmd1,1,&write,NULL);
}while(write==0);
printf("x ",cmd1);
do
{
ReadFile (h1,&cmd1,1,&write,NULL);
}while(write==0);
printf("x ",cmd1);
*/
cmd1 = 0xaa;
while(1)
WriteFile(h1,&cmd1,1,&write,NULL);

/* cmd1 = 0x12;
WriteFile(h1,&cmd1,1,&write,NULL);
cmd1 = 0x55;
WriteFile(h1,&cmd1,1,&write,NULL);
cmd1 = 0x61;
WriteFile(h1,&cmd1,1,&write,NULL);
cmd1 = 0x61;
WriteFile(h1,&cmd1,1,&write,NULL);
cmd1 = 0xcc;
WriteFile(h1,&cmd1,1,&write,NULL);
*/
return TRUE;


} (iwgh)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/200404/758.html]
本文出处:网络博客 作者:iwgh
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容