Win32 API UART编程
下面是一个使用Win32 API进行UART编程的简单示例。
#include <windows.h>
#include <stdio.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
HANDLE hCom;
DWORD dwError;
char buf[] = "Hello World From COM3!\n";
DWORD nBytes; printf("%s\n", lpCmdLine); hCom = CreateFile("COM3", GENERIC_READ | GENERIC_WRITE, , NULL, OPEN_EXISTING, , NULL); if (hCom == (HANDLE)-) {
dwError = GetLastError();
printf("Error = %d\n", dwError);
return ;
} DCB dcb;
GetCommState(hCom, &dcb);
dcb.BaudRate = ;
dcb.ByteSize = ;
dcb.Parity = NOPARITY;
dcb.StopBits = ;
dcb.fBinary = TRUE;
dcb.fParity = TRUE;
SetCommState(hCom, &dcb);
SetupComm(hCom, , );
PurgeComm(hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR); COMMTIMEOUTS to;
memset(&to, , sizeof(to));
to.ReadIntervalTimeout = ;
SetCommTimeouts(hCom, &to); WriteFile(hCom, buf, sizeof(buf), &nBytes, NULL);
printf("Data Sent! NBytes = %d\n", nBytes);
ReadFile(hCom, buf, sizeof(buf), &nBytes, NULL);
printf("Data Received! NBytes = %d\n", nBytes); printf("%s\n", buf); CloseHandle(hCom);
return ;
}
Win32 API UART编程的更多相关文章
- Win32 API 多线程编程——一个简单实例(含消息参数传递)
Win32 API进行程序设计具有很多优点:应用程序执行代码小,运行效率高,但是他要求程序员编写的代码较多,且需要管理所有系统提供给程序的资源,要求程序员对Windows系统内核有一定的了解,会占用程 ...
- Win32 API编程——前言
一丶什么是Win32 API? 微软为了保护操作系统的安全性和稳定性,把系统分为内核层和用户层(内核层的代码只能在当CPU的特权级为R0状态下执行,用户层的代码在CPU特权级为R0和R3都能执行),w ...
- win32 C++制作美观按钮,告别win32 API编程中默认的灰色按钮
使用win32 API制作美观按钮,当鼠标移入/移出按钮时改变按钮背景颜色,类似HTML网页中的效果,告别win32 API编程中默认的灰色按钮,效果图见下面动图和视频. 下载地址: 按钮效果(win ...
- 深入浅出VC++串口编程之基于Win32 API
1.API描述 在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致. 打开串口 Win32 中用于打开串口的API 函数为CreateFile,其原型为: H ...
- Serial Port Programming using Win32 API(转载)
In this tutorial we will learn How to communicate with an external device like a microcontroller boa ...
- win32 api ShouCursor 根据内部计数器 是否>= 0 决定是否 显示光标,每true时计数器+1,每false-1
win32 api ShouCursor 根据内部计数器 是否>= 0 决定是否 显示光标,每true时计数器+1,每false-1,编程时true 和 false 的次数容易产生bug.
- Detours简介 (拦截x86机器上的任意的win32 API函数)
Detours 当然是用detours,微软明显高腾讯一筹,同上,至今没失败过.写这种HOOK一定要再写个测试程序,不要直接HOOK你的目的程序,例如QQ,因为这样不方面更灵活的测试.说明一下:Det ...
- 【.Net】从.NET平台调用Win32 API
小序 Win32 API可以直接控制Microsoft Windows的核心,因为API(Application Programming Interface)本来就是微软留给我们直接控制 ...
- MSComm控件与Win32 API操作串口有何区别?
MSComm控件与Win32 API操作串口有何区别? [问题点数:50分,结帖人shell_shell] 收藏帖子 回复 我是一个小兵,在战场上拼命! 结帖率 83.33% 我以前用MSCo ...
随机推荐
- Leetcode 之Binary Tree Postorder Traversal(47)
中序遍历二叉搜索树,得到的是一个有序的结果,找出其中逆序的地方就可以了.如果逆序的地方相邻,只需把逆序的相换即可:如果不相邻,则需要找到第二个逆序对的 第二个元素再做交换. 定义两个指针p和q来指定需 ...
- java之基本数据类型与引用数据类型
基本数据类型 需要注意的是字符是基本数据类型,但是字符串不是基本数据类型. 引用数据类型 类.接口类型.数组类型.枚举类型.注解类型. (上面说的字符串String属于引用数据类型中“类”的范畴) 两 ...
- Centos7Yum安装Mysql8
1.去官网下载rpm文件,该文件专门用于yum安装方式: https://dev.mysql.com/downloads/repo/yum/ 然后拉到最下面,我下载的是第一个:Red Hat Ente ...
- Zabbix历史数据库迁移 及分区
https://blog.csdn.net/hkyw000/article/details/78971201?utm_source=blogxgwz6
- Jsonp方式和httpclient方式有什么区别?
jsonp基于js,解决跨域问题,本质发起ajax情求但是Jsonp只支持get请求. 它不安全,它先解析js,然后发起ajax请求,然后获取到返回值,通过浏览器返回,最后解析. JQuery和Spr ...
- 如何在eclipse 中安装 spring IDE
1.先 确定 当前的eclipse 的版本:(步骤如下) 2.下载spring ide(请确定好ecplice 的版本号) http://spring.io/tools/sts/all 最后: 安装 ...
- 洛谷P3805 [模板]Manacher算法 [manacher]
题目传送门 题目描述 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 字符串长度为n 输入输出格式 输入格式: 一行小写英文字符a,b,c...y,z组成的字符 ...
- 现代CSS清除浮动
清除浮动 排除远古时代的hack解决方案,比如那些要兼容IE6~8的方法.其实总结起来,大致有三种方法: overflow 原理解析:块级格式上下文规定了页面必须自动包含突出的浮动元素! 而overf ...
- mysql 删除表记录 delete和truncate table区别
MySQL中删除表记录delete from和truncate table的用法区别: mysql中有两种删除表中记录的方法: (1)delete from语句, (2)truncate table语 ...
- luogu P1353 [USACO08JAN]跑步Running
题目描述 The cows are trying to become better athletes, so Bessie is running on a track for exactly N (1 ...