#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. 以太坊geth区块链私链建立

      以太坊geth区块链私链建立 geth的github https://github.com/ethereum/go-ethereum 下载最新(1.8)的geth,windows下安装很简单 关于 ...

  2. APP_DEBUG改成false上线之后发现:“页面错误!请稍后再试~

      TP框架 页面错误!请稍后再试 把APP_DEBUG改成false上线之后发现:"页面错误!请稍后再试-". 问题一般是出在,display() 指定某个具体的模板文件后win ...

  3. 18.flannel

    18.flannel docker有四种常用网络 bridge joined opended 直接共享使用节点的网络名称空间 none k8s网络通信: 容器间的通信: 同一个Pod内的多个容器之间通 ...

  4. C# Socket TcpClient 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。

    开始的代码: byte[] data = Encoding.UTF8.GetBytes(sInfo);                    tcpns.Write(data, 0,1024); 修改 ...

  5. spring常用模式--模板模式

    引入:这几天在看一本讲spring源码的书<SPRING技术内幕>里面在讲加载配置文件的时候,可以有不同的加载方式,如根据文件系统目录加载配置文件(FileSystemXmlApplica ...

  6. 跨域form下载方式 批量下载

    downloadFileForm:function(fid) { var url = "https://file.xxxx.com/fileDownload.do"; var in ...

  7. Flutter dio伪造请求头获取数据

    在很多时候,后端为了安全都会有一些请求头的限制,只有请求头对了,才能正确返回数据.这虽然限制了一些人恶意请求数据,但是对于我们聪明的程序员来说,就是形同虚设.下面就以极客时间为例,讲一下通过伪造请求头 ...

  8. Vscode中打开、新建内部终端快捷键方法

    设置->键盘快捷方式->搜索集成终端->切换集成终端/新建集成终端 Windows 电脑 组合键 说明 Ctrl + ~ 打开默认终端 Ctrl + Shift + ~ 新建新的终端 ...

  9. IDEA配置Hystrix过程中报错: java.lang.IllegalStateException: No instances available for user-service

    最近在练习微服务架构中, 使用IDEA配置完Hystrix, 添加熔断方法后, 在浏览器中访问未启动的( 含有熔断方法注解 )的路径时, 报出了 : 500: No instances availab ...

  10. cook,session

    //发送session request.getSession().setAttribute("user", "zs1"); //发送cookie //需要自动登 ...