WindowsAPI操作串口
#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操作串口的更多相关文章
- C#操作串口总结
Technorati 标签: C#,SerialPort,ReadTo,ReadTimeout 最近几天一直在调一个要长时间连续不断的操作串口,并且是多线程运行,不允许中断的服务.后来服 ...
- MSComm控件与Win32 API操作串口有何区别?
MSComm控件与Win32 API操作串口有何区别? [问题点数:50分,结帖人shell_shell] 收藏帖子 回复 我是一个小兵,在战场上拼命! 结帖率 83.33% 我以前用MSCo ...
- android开发(37) android使用android_serialport_api 操作串口,解决权限问题
最近有个项目,要使用android设备操作串口的 斑马GK888T打印机,使用打印机打印二维码. 硬件设备连接方式: 安卓设备 通过 串口RS232 连接 斑马打印机的串口 那么就要解决:使用安卓设备 ...
- CE 操作串口
WinCE里面都是通过标准的系统API对串口进行操作的,但是串口不同于其它文件,它是是独占式地操作的. 下面是一个操作的串口类: #pragma once typedef void (*LPDataA ...
- 通过shell操作串口
1. 通过stty工具设置串口参数,例如 stty -F /dev/ttyUSB0 raw speed 9600 -echo min 0 time 10 上例设置了ttyUSB0设备的数据流格式为ra ...
- Pyserial操作串口
pySerial 介绍 封装了串口通讯模块,支持Linux.Windows.BSD(可能支持所有支持POSIX的操作系统),支持Jython(Java)和IconPython(.NET and Mon ...
- python操作串口
import serial test = serial.Serial("COM1",115200)#这里就已经打开了串口 print(test.portstr) test.writ ...
- C# 如何操作串口
1.首先要引用 System.IO.Ports using System; using System.Collections.Generic; using System.ComponentModel ...
- qt 操作串口 QSerialPort
准备工作 *.pro中加入 QT += serialport 初始化 void MainWindow::initPort() { //读取串口信息 foreach (const QSerialPort ...
随机推荐
- 通过sqlserver用户操作远程服务器
USE masterGORECONFIGURE --先执行一次刷新,处理上次的配置GOEXEC sp_configure 'show advanced options',1 --启用xp_cmdshe ...
- arcgis python 标注
import arcpy mxd = arcpy.mapping.MapDocument("current") lyr = arcpy.mapping.ListLayers(mxd ...
- 如何配置WAMP环境(主要是Apache与PHP)
1.配置Apache 1.编辑Apache配置文件---http.conf(位于安装目录下的conf子目录内): 2.修改Document Root 和 Directory选项,这是修改Apache的 ...
- Mysql 清空数据后,释放硬盘文件
删除表数据后执行:optimize table [表名]
- Facebook币Libra学习-6.发行属于自己的代币Token案例(含源码)
在这个简短的概述中,我们描述了我们在eToro标记化资产背后实施技术的初步经验,即MoveIR语言中的(eToken),用于在Libra网络上进行部署. Libra协议是一个确定性状态机,它将数据存储 ...
- 008-网络抓包工具-wireshark
一.概述 二.安装 三.使用 3.1.基础设置 语言:WireShark→首选项→语言 3.2.使用过程 打开软件,选择对应的网卡, Filter:设置对应的关键词后,点击回车或者右侧箭头 如,协议: ...
- 安装Oracle11g出现INS-13001环境不满足最低要求
原版:https://blog.csdn.net/Q_Sea__/article/details/79012808 第一次安装Oracle11g,就出现这个问题,就找了一些解决方案.现在总结一下. 出 ...
- mac下的夜神模拟器链接vscode
1.找到夜神模拟器,点击右键,查看包内容,找到文件夹下面的macos在点击右键打开终端.输入: adb connect 127.0.0.1:62001 dart和flutter交流群:45289287 ...
- kibana配置文件说明书
#端口号 server.port: 5601 #kibana服务安装的地址 server.host: "192.168.122.21" #当使用代理时,这里可能对应的是加工后的ki ...
- python之pandas学习笔记-初识pandas
初识pandas python最擅长的就是数据处理,而pandas则是python用于数据分析的最常用工具之一,所以学python一定要学pandas库的使用. pandas为python提供了高性能 ...