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 ...
随机推荐
- Hive-概述
Hive:由 Facebook 开源用于解决海量结构化日志的数据统计. Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能. 本质是:将 ...
- CPU、io、mem之间的关系
https://blog.csdn.net/weixin_38250126/article/details/83412749 https://blog.csdn.net/joeyon1985/arti ...
- Xgboost 两种使用方式
原生形式使用Xgboost(import xgboost as xgb) from sklearn import datasets from sklearn.model_selection impor ...
- hashMap 底层原理+LinkedHashMap 底层原理+常见面试题
1.源码 java1.7 hashMap 底层实现是数组+链表 java1.8 对上面进行优化 数组+链表+红黑树 2.hashmap 是怎么保存数据的. 在hashmap 中有这样一个结构 ...
- c++拷贝文件-传统处理异常(学习)
#include <iostream>#include <stdio.h> using namespace std; int my_copy(const char* src_f ...
- 智能指针-共享式shared_ptr
#include <iostream>#include <string>#include <vector>#include <memory> using ...
- webdriervAPI(多表单切换)
讲三个方法 driver.switch_to.frame("第一个iframe标签属性值") driver.switch_to.frame(" 第二个iframe标签属性 ...
- MyBatis接口式编程
MyBatis使用接口连接数据库 之前学习了如何传统的使用MyBatis连接数据库,今天学习如何使用更方便快捷的方式练级数据库.使用接口连接数据库 https://www.cnblogs.com/li ...
- tushare获取股票每日重要的基本面指标数据,并存入Elasticsearch
tushare是一个开放的,免费的金融数据平台,包含沪深股票数据,指数数据,基金数据,期货数据,期权数据,债券数据,外汇数据,港股数据,行业经济数据,宏观经济数据以及新闻快讯等特色数据.其中以沪深股票 ...
- spring boot跨域问题的简便解决方案
刚学spring boot的时候被跨域问题拦住好久,最终好不容易从网上抄了别人的极端代码才解决. 但是前些天看一同事的代码时,发现spring boot中用注解就可以解决. 在controller上添 ...