WindowsAPI操作串口


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

int main()
{
//1.打开串口
HANDLE hCom;
hCom = CreateFile("COM1",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
if (hCom ==(HANDLE)-1 )
printf("打开串口失败!\n");
else
printf("打开串口成功!\n");

//2.初始化串口
DCB dcb;
GetCommState(hCom, &dcb);
dcb.BaudRate = 9600;//波特率
//dcb.fParity = 0;//奇偶校验使能
dcb.ByteSize = 8;//数据位
dcb.Parity = NOPARITY;//奇偶校验
dcb.StopBits = ONESTOPBIT;//停止位
SetCommState(hCom, &dcb);

SetupComm(hCom, 1024, 1024);
COMMTIMEOUTS TimeOuts;

//设定读超时
TimeOuts.ReadIntervalTimeout = 1000;
TimeOuts.ReadTotalTimeoutConstant = 5000;
TimeOuts.ReadTotalTimeoutMultiplier = 500;

//设定写超时
TimeOuts.WriteTotalTimeoutConstant = 2000;
TimeOuts.WriteTotalTimeoutMultiplier = 500;

SetCommTimeouts(hCom, &TimeOuts);

//清空缓冲区
PurgeComm(hCom, PURGE_TXCLEAR|PURGE_RXCLEAR);
Sleep(500);

//3.读写串口
unsigned char buf[10] = {0x00, 0x06, ‘D‘, ‘A‘, ‘T‘, ‘A‘};
BOOL bWriteStat;
DWORD dwBytesWrite = 6;
bWriteStat = WriteFile(hCom, buf, dwBytesWrite, &dwBytesWrite, NULL);
if (!bWriteStat)
{
printf("写串口失败!\n");
}
else
printf("写串口成功!\n");

unsigned char rBuf[1024];
BOOL bReadStat;
DWORD dwBytesRead;
bReadStat = ReadFile(hCom, rBuf, 1024, &dwBytesRead, NULL);
if (!bReadStat)
{
printf("读串口失败!\n");
}
else
{
printf("读串口成功!\n");
}
for (DWORD j = 0; j < dwBytesRead; j++)
{
printf("%x ", rBuf[j]);
}
printf("\n");

//4.关闭串口
CloseHandle(hCom);
return 0;
}

WindowsAPI操作串口

时间: 2024-08-10 17:41:48

WindowsAPI操作串口的相关文章

android开发(37) android使用android_serialport_api 操作串口,解决权限问题

最近有个项目,要使用android设备操作串口的 斑马GK888T打印机,使用打印机打印二维码. 硬件设备连接方式: 安卓设备 通过 串口RS232 连接 斑马打印机的串口 那么就要解决:使用安卓设备操作串口的问题. 我找到一个框架:android_serialport_api,这个框架被托管在: https://code.google.com/p/android-serialport-api/    谷歌的代码库,无奈国内无法下载 https://github.com/cepr/android

python3操作串口

通过引用serial模块包,来操作串口. 1.查看串口名称 在Linux和Windows中,串口的名字规则不太一样.需要事先查看. Linux下的查看串口命令 [email protected]:~# ls -l /dev/ttyS* crw-rw---- 1 root dialout 4, 64 Dec 26 06:53 /dev/ttyS0 crw-rw---- 1 root dialout 4, 65 Dec 26 06:41 /dev/ttyS1 crw--w---- 1 root tt

c#操作串口类

先放上串口的一个类,自己编写的,觉得这样好用些. using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO.Ports;using System.Collections;us

Pyserial操作串口

pySerial 介绍 封装了串口通讯模块,支持Linux.Windows.BSD(可能支持所有支持POSIX的操作系统),支持Jython(Java)和IconPython(.NET and Mono). 首页 http://pyserial.sf.net/ 特性所有平台使用同样的类接口端口号默认从0开始,程序中不需要知道端口名称像文件读写一样的API,read.write(readline等也受支持)所有程序全由Python完成,除了标准库外不依赖其他包,除了pywin32(windows)

Android 操作串口 (android serial port api)

前几天公司有通过搭载Android系统的开发板来使用打卡机统计数据的需求,对于攻城狮来说就需要在Android平台上读写打卡机的串口,在网上搜索一些东西之后发现了在google code 上的android serial port api可以用,墙了之后拿到源码发现还有demo,不错不错,我这个帖子就通过serial port api的源码简单得实现一个读写串口,这个当然是在native写的,如果还有哪些童鞋不清楚android上使用jni和native的话可以跳转到我的上篇帖子 点我点我 在A

Python 操作串口

import serial导入模块 然后就可以用了 ser = serial.Serial(0) 是打开第一个串口 print ser.portstr 能看到第一个串口的标识,windows下是COM1 ser.write("hello") 就是往串口里面写数据 ser.close() 就是关闭ser表示的串口 ser.open() 会打开这个串口 ser = serial.Serial('COM1', 115200) 来设置波特率,当然还有专门的函数 data = ser.read(

MATLAB串口操作和GUI编程

简单的MATLAB GUI编程和串口控制.Word编辑,如需PDF版本,请留言.说实话这个挺难看的……     概述 本文介绍了程序AD9512_Serial_GUI的编程思路和功能.该程序设计到MATLAB的图像用户界面编程的基本方法和串口的基本操作.程序目的在于通过串口写控制字对AD9512进行配置(AD9512通过SPI写入寄存器,本程序只是整个控制程序中的一部分). 修订历史 以下表格展示了本文档的修订过程 日期 版本号 修订内容 2015/01/15 V0.0 初始版本,试验版[1]

VC控制台串口操作【645电表抄读】

有时候需要编写简单的测试软件,使用VC++6.0,研究了两种方式操作串口,VC 串口编程方法分为利用 VC 串口控件(或 VC 串口类)和直接调用Windows底层API函数(我称之为VC API 串口编程)两种方法 在Windows 32位以上操作系统(Win98以上)中,将串口(包括其它通信设备)作为文件来处理,所以串口的打开.读写和关闭所用API函数与文件操作函数一样.所以打开串口用CreateFile,读串口用ReadFile,写串口用WriteFile,关闭串口用CloseHandle

转:Python通过pyserial控制串口操作

https://blog.csdn.net/lovelyaiq/article/details/48101487 你想通过串行端口读写数据,典型场景就是和一些硬件设备打交道(比如一个机器人或传感器).尽管你可以通过使用Python内置的I/O模块来完成这个任务,但对于串行通信最好的选择是使用 pySerial包 . 这个包的使用非常简单,先安装pySerial,使用类似下面这样的代码就能很容易的打开一个串行端口: 一.用python操作串口,首先需要下载相关模块: pyserial (http: