#include <windows.h>
#include <stdio.h> int main()
{
//1.打开串口
HANDLE hCom;
hCom = CreateFile("COM1",
GENERIC_READ|GENERIC_WRITE,
,
NULL,
OPEN_EXISTING,
,
NULL);
if (hCom ==(HANDLE)- )
printf("打开串口失败!\n");
else
printf("打开串口成功!\n"); //2.初始化串口
DCB dcb;
GetCommState(hCom, &dcb);
dcb.BaudRate = ;//波特率
//dcb.fParity = 0;//奇偶校验使能
dcb.ByteSize = ;//数据位
dcb.Parity = NOPARITY;//奇偶校验
dcb.StopBits = ONESTOPBIT;//停止位
SetCommState(hCom, &dcb); SetupComm(hCom, , );
COMMTIMEOUTS TimeOuts; //设定读超时
TimeOuts.ReadIntervalTimeout = ;
TimeOuts.ReadTotalTimeoutConstant = ;
TimeOuts.ReadTotalTimeoutMultiplier = ; //设定写超时
TimeOuts.WriteTotalTimeoutConstant = ;
TimeOuts.WriteTotalTimeoutMultiplier = ; SetCommTimeouts(hCom, &TimeOuts); //清空缓冲区
PurgeComm(hCom, PURGE_TXCLEAR|PURGE_RXCLEAR);
Sleep(); //3.读写串口
unsigned char buf[] = {0x00, 0x06, 'D', 'A', 'T', 'A'};
BOOL bWriteStat;
DWORD dwBytesWrite = ;
bWriteStat = WriteFile(hCom, buf, dwBytesWrite, &dwBytesWrite, NULL);
if (!bWriteStat)
{
printf("写串口失败!\n");
}
else
printf("写串口成功!\n"); unsigned char rBuf[];
BOOL bReadStat;
DWORD dwBytesRead;
bReadStat = ReadFile(hCom, rBuf, , &dwBytesRead, NULL);
if (!bReadStat)
{
printf("读串口失败!\n");
}
else
{
printf("读串口成功!\n");
}
for (DWORD j = ; j < dwBytesRead; j++)
{
printf("%x ", rBuf[j]);
}
printf("\n"); //4.关闭串口
CloseHandle(hCom);
return ;
}

WindowsAPI操作串口的更多相关文章

  1. C#操作串口总结

    Technorati 标签: C#,SerialPort,ReadTo,ReadTimeout        最近几天一直在调一个要长时间连续不断的操作串口,并且是多线程运行,不允许中断的服务.后来服 ...

  2. MSComm控件与Win32 API操作串口有何区别?

    MSComm控件与Win32 API操作串口有何区别? [问题点数:50分,结帖人shell_shell]   收藏帖子 回复 我是一个小兵,在战场上拼命!   结帖率 83.33% 我以前用MSCo ...

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

    最近有个项目,要使用android设备操作串口的 斑马GK888T打印机,使用打印机打印二维码. 硬件设备连接方式: 安卓设备 通过 串口RS232 连接 斑马打印机的串口 那么就要解决:使用安卓设备 ...

  4. CE 操作串口

    WinCE里面都是通过标准的系统API对串口进行操作的,但是串口不同于其它文件,它是是独占式地操作的. 下面是一个操作的串口类: #pragma once typedef void (*LPDataA ...

  5. 通过shell操作串口

    1. 通过stty工具设置串口参数,例如 stty -F /dev/ttyUSB0 raw speed 9600 -echo min 0 time 10 上例设置了ttyUSB0设备的数据流格式为ra ...

  6. Pyserial操作串口

    pySerial 介绍 封装了串口通讯模块,支持Linux.Windows.BSD(可能支持所有支持POSIX的操作系统),支持Jython(Java)和IconPython(.NET and Mon ...

  7. python操作串口

    import serial test = serial.Serial("COM1",115200)#这里就已经打开了串口 print(test.portstr) test.writ ...

  8. C# 如何操作串口

    1.首先要引用  System.IO.Ports using System; using System.Collections.Generic; using System.ComponentModel ...

  9. qt 操作串口 QSerialPort

    准备工作 *.pro中加入 QT += serialport 初始化 void MainWindow::initPort() { //读取串口信息 foreach (const QSerialPort ...

随机推荐

  1. SQLyog Enterprise Trial 试用期问题

    SQLyog Enterprise Trial 是 SQLyog的试用版,有效期30天:试用期过后提示购买之后才能使用:解决办法:修改注册表(过期就得改比较麻烦,但暂时可以用,等有时间了再找其他办法) ...

  2. qDebug() << currentThreadId();

    从 dbzhang800 的博客中转载两篇关于事件循环的文章,放在一起,写作备忘. 再次提到的一点是:事件循环和线程没有必然关系. QThread 的 run() 方法始终是在一个单独线程执行的,但只 ...

  3. Understanding the ASP.NET MVC Execution Process

    https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/overview/understanding-the-asp ...

  4. Python颜色分类及格式

    Python字符串颜色使用下面方式进行修改 \033[显示方式;字体色;背景色m 字符串 \033[0m 显示方式包括: 0  终端默认设置 1  高亮显示 4  使用下划线 5  闪烁 7  反白显 ...

  5. 手把手教你实现RecyclerView的下拉刷新和上拉加载更多

    手把手教你实现RecyclerView的下拉刷新和上拉加载更多     版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https:// ...

  6. [Java复习] Spring Boot

    什么是Spring Boot? 传统SSH/SSM框架配置繁琐,有很多重复的模板配置,效率不高. Spring Boot快速创建可独立运行,生产级别的Spring应用程序. 主要是基于Spring家族 ...

  7. flask的post,get请求及获取不同格式的参数

    flask的post,get请求及获取不同格式的参数 1 获取不同格式参数 1.0 获取json参数 Demo from flask import Flask, request, jsonify ap ...

  8. Maven setting.xml简易配置

    使用国内阿里云的下载源: <?xml version="1.0" encoding="UTF-8"?> <settings> <l ...

  9. Dart Language samples

    Hello World Every app has a main() function. To display text on the console, you can use the top-lev ...

  10. poj3107(树的重心,树形dp)

    题目链接:https://vjudge.net/problem/POJ-3107 题意:求树的可能的重心,升序输出. 思路:因为学树形dp之前学过点分治了,而点分治的前提是求树的重心,所以这题就简单水 ...