#include "tchar.h"

#include int main()

{

/*****************************打开串口*************************************/

HANDLE hCom;//全局变量,串口句柄

hCom = CreateFile(_T("COM3"),//COM3口

GENERIC_READ | GENERIC_WRITE,//允许读和写

0,//独占方式

NULL,

OPEN_EXISTING,//打开而不是创建

0,//同步方式

//FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERAPPLE,//重叠方式

NULL);

if(hCom == (HANDLE)-1)

{

printf("打开COM失败!");

return 0;

}

/****************配置串口***************/

SetupComm(hCom, 20480, 20480);//输入缓冲区和输出缓冲区的大小都是20480

COMMTIMEOUTS TimeOuts;

TimeOuts.ReadIntervalTimeout = 1000;//设定读超时

TimeOuts.ReadTotalTimeoutMultiplier = 500;

TimeOuts.ReadTotalTimeoutConstant = 5000;

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

TimeOuts.WriteTotalTimeoutConstant = 2000;

SetCommTimeouts(hCom, &TimeOuts);//设置超时

DCB dcb;

GetCommState(hCom, &dcb);

dcb.BaudRate = 115200;//波特率为115200

dcb.ByteSize = 8;//每个字节有8位

dcb.Parity = NOPARITY;//无奇偶校验位

dcb.StopBits = TWOSTOPBITS;//两个停止位

dcb.fParity = FALSE;

dcb.fNull = FALSE;

SetCommState(hCom, &dcb);

PurgeComm(hCom, PURGE_TXCLEAR|PURGE_RXCLEAR);//在读写串口之前清空缓冲区

/********同步写串口********/

int i;

unsigned char sendData[256] = {0};//写入串口缓存区的数组

for(i=0; i<16; i++)

{

sendData[i] = i;

}

DWORD dwWriteLen = 0;

if(!WriteFile(hCom, sendData, 16, &dwWriteLen, NULL))

{

printf("串口发送数据失败!

");

}

printf("串口发送数据成功!

");

printf("发送的数据为:

");

for(i=0; i<16; i++)

{

printf("%02X ", sendData[i]);

}

printf("

");

/***********关闭串口***********/

CloseHandle(hCom);

std::cout << "Hello World!

";

return 0;

}

运行效果:

配套VS2017工程下载地址:https://download.csdn.net/download/qinrenzhi/10774388

windows 串口编程 c语言,windows下C语言版串口发送程序(基于VS2017)相关推荐

  1. linux系统下c语言编程的,Linux操作系统下C语言编程从零开始

    这里向大家介绍一下在Linux/UNIX 的机器上,进行 C/C++ 编程的一些入门级知识. · 所需具备的背景知识 · 开发所需的基本环境 · 获得帮助的途径 · 通过一个实例了解基本步骤 Prer ...

  2. linux+下c语言编程项目,精通UNIX下C语言编程与项目实践

    cc -I  //include 目录 -L //静态库目录?动态也可以 -l //小写L,接静态库名称?动态也可以 -DXXX='"XXFF"' //-D直接定义宏 -c 只编译 ...

  3. Windows核心编程_设置Windows开机自动登录

    设置自动登录的方法在Windows中已经给出了非常方便的方法,当Windows内核进入登入界面时会检查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ ...

  4. Windows核心编程_关闭Windows

    下面介绍几种在Windows编程中关闭Windows的几种方式 首先介绍一个API ExitWindowsEx 这个API是WIndows下为开发人员提供的对操作系统睡眠的几种方式 API介绍: 函数 ...

  5. linux设备驱动,tty串口编程 如何查看linux下串口是否可用?串口名称等

    如何查看linux下串口是否可用?串口名称等? http://zhidao.baidu.com/question/419148559.html 查看串口是否可用,可以对串口发送数据比如对com1口,e ...

  6. windows核心编程--2、windows的画笔画刷以及一些简单的应用

    一.前言     该系列前几篇:      windows核心编程–1.使用vs2019编写第一个win32项目 二.相关工具     IDE:vs2019     其他格式图片转ico脚本(贴在文末 ...

  7. linux下c语言编程书籍6,Linux下C语言编程-6.pdf

    永远的下语言编程基础知识 页码, 首页编程技术正文 L inux下C语言编程 - -基础知识 作者 前言 这篇文章介绍在下进行语言编程所需要的基础知识在这篇文章当中我们将会学 内容 源程序编译 的编写 ...

  8. ubuntu下c语言编程工具,Ubuntu系统下C语言代码检查工具(Splint)

    看一下下面的代码(当然包括错误,以检验splint的功能): #include int main(int argc,char* argv[]){ int a=100; /*没有使用的变量*/ int ...

  9. 半双工通信是指c语言,Linux下C语言实现半双工的UDP通信

    ------------恢复内容开始------------ Linux下C语言实现半双工的UDP通信 1.单向通信:又称为单工通信,即只能有一个方向的通信而没有反方向的交互.无线电广播或有线电广播以 ...

最新文章

  1. 怎么去大蒜味(一定要看拉) - 生活至上,美容至尚!
  2. python爬百度翻译-爬虫 python爬取百度翻译接口 超详细附源码
  3. Go的json解析:Marshal与Unmarshal
  4. bh1750采集流程图_基于MSP430和CC2530的温室大棚数据采集系统设计
  5. 解决jQuery与其他库冲突的方法
  6. (18) Node.js npm包管理工具
  7. C#退出窗体的总结方法
  8. EXCHANGE指定要使用的域控制器、GC
  9. Atitit.木马病毒的免杀原理---sikuli 的使用
  10. bootstrapmodel确认操作框_Bootstrap使用模态框modal实现表单提交弹出框
  11. 如何解决Unity高版本使用EasyTouch5的问题
  12. Minio分布式文件系统学习笔记
  13. 关于各种网站音频mp3的外链地址,真实的外链播放地址
  14. MBTI职业性格测试
  15. 吴军的《见识》书的核心内容
  16. “海外传播官”阿乐:让20万外国粉丝通过我“在中国生活”
  17. Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击
  18. 不同的丘脑皮层网络动力学与慢性腰痛的病理生理学有关
  19. python控制流实例_python学习笔记系列----(二)控制流
  20. 如何将WPS转换成office,WPS转office的转换方法

热门文章

  1. 【转】为控制台窗口建立消息队列
  2. git的简单理解及基础操作命令
  3. oracle11g AUD$维护
  4. WAS 报错 Font '宋体' is not available to the JVM
  5. LAMP源代码编译整理
  6. 研究者展示黑客通过GPU绕过防毒软件查杀的方法
  7. 面向Tableau开发人员的Python简要介绍(第2部分)
  8. leetcode 959. 由斜杠划分区域(并查集)
  9. leetcode 222. 完全二叉树的节点个数(dfs)
  10. 开源项目贡献者_我如何从一名贡献者转变为一个开源项目维护者