windows 串口編程 c語言,windows下C語言版串口發送程序(基于VS2017)

#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;

}

運行效果:

3f288ee285423cc6e29fa526842ca321.png

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397430.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397430.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397430.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

scikit-learn決策樹算法類庫使用小結

之前對決策樹的算法原理做了總結&#xff0c;包括決策樹算法原理(上)和決策樹算法原理(下)。今天就從實踐的角度來介紹決策樹算法&#xff0c;主要是講解使用scikit-learn來跑決策樹算法&#xff0c;結果的可視化以及一些參數調參的關鍵點。 1. scikit-learn決策樹算法類庫介紹…

3.js模式-策略模式

1. 策略模式 策略模式定義一系列的算法&#xff0c;把它們封裝起來&#xff0c;并且可以互相替換。 var strategies { isNonEmpty: function(value,errMsg){ if(value ){ return errMsg; } }, minLength:function(value,length,errMsg){ if(value.length < length){ retur…

c語言編寫程序求8,使用c語言編寫程式,實現計算1*2*3+4*5*6+7*8*9+……+28*29*30的值...

使用c語言編寫程式&#xff0c;實現計算1*2*34*5*67*8*9……28*29*30的值以下文字資料是由(歷史新知網www.lishixinzhi.com)小編為大家搜集整理后發布的內容&#xff0c;讓我們趕快一起來看一下吧&#xff01;使用c語言編寫程式&#xff0c;實現計算1*2*34*5*67*8*9……28*29*3…

PHP 正則表達式分割 preg_split 與 split 函數

為什么80%的碼農都做不了架構師&#xff1f;>>> preg_split() preg_ split() 函數用于正則表達式分割字符串。 語法&#xff1a; array preg_split( string pattern, string subject [, int limit [, int flags]] ) 返回一個數組&#xff0c;包含 subject 中沿著與…

簡單學C——第五天

結構體 首先明確&#xff0c;結構體是一種構造的數據類型&#xff0c;是一種由多個數據類型如 int&#xff0c;char&#xff0c;double&#xff0c;數組或者結構體......組成的類型,現在告訴大家如何定義一個結構體。在定義int整型變量時&#xff0c;大家肯定都知道 int a; 即…

C語言二叉樹實驗報告流程圖,二叉樹的建立與遍歷實驗報告(c語言編寫,附源代碼).doc...

二叉樹的建立與遍歷實驗報告(c語言編寫,附源代碼).doc第 1 頁&#xff0c;共 9 頁二叉樹的建立與遍歷實驗報告級 班 年 月 日 姓名 學號_ 1實驗題目建立一棵二叉樹&#xff0c;并對其進行遍歷(先序、中序、后序)&#xff0c;打印輸出遍歷結果。2需求分析本程序用 VC 編寫&#…

三角函數泰勒展開C語言,第六章-函數作業 ---三角函數泰勒級數展開式計算正弦函數值...

E201_06_02_正弦函數題目要求&#xff1a;按照三角函數泰勒級數展開式計算正弦函數值&#xff1a;,直到最后一項的絕對值小于106解題思路&#xff1a;1. 輸入弧度2. 確定初始化值3. 求階梯函數代碼&#xff1a;public class E201_06_02_正弦函數 {public static void main(Stri…

Codeforces Round #325 (Div. 2) B. Laurenty and Shop 前綴和

B. Laurenty and Shop Time Limit: 1 Sec Memory Limit: 256 MB 題目連接 http://codeforces.com/contest/586/problem/BDescription A little boy Laurenty has been playing his favourite game Nota for quite a while and is now very hungry. The boy wants to make sau…

python學習感悟第3節

在繼列表的學習之后&#xff0c;進行了元組的學習。元組和列表功能相似&#xff0c;只是元組不能進行修改&#xff0c;所以元組又叫只讀列表。 下面列舉的是一系列的字符串操作&#xff1a; name.capitalize() #首字母大寫 name.count("a") #數列表中有幾個a name…

MyBatis_ibatis和mybatis的區別【轉】

1. ibatis3.*版本以后正式改名為mybaits&#xff0c;它也從apache轉到了google code下&#xff1b;也就是說ibatis2.*&#xff0c;mybatis3.*。2. 映射文件的不同ibatis的配置文件如下<?xml version"1.0" encoding"UTF-8" ?><!DOCTYPE sqlMapCo…

android gallery自動播放,可循環顯示圖像的Android Gallery組件

類型&#xff1a;源碼相關大小&#xff1a;23.6M語言&#xff1a;中文 評分&#xff1a;9.1標簽&#xff1a;立即下載第 4 頁 實現循環顯示圖像的Gallery組件實現循環顯示圖像的Gallery組件在本節將組出與循環顯示圖像相關的ImageAdapter類的完整代碼。讀者可以從中看到上一節介…

docker內程序如何讀取dockerfile和compose.yml中設置的環境變量

docker內程序如何讀取dockerfile和compose.yml中設置的環境變量 背景 compose文件中配置了服務A和服務B&#xff0c;其中B服務調用了A服務的接口&#xff0c;那么B的實現代碼中該如何調用A的服務呢&#xff1f; 解決 compose文件中&#xff0c;服務B的配置加入A的接口&#xff…

2015年10月13日

關于掙錢&#xff0c;我覺得&#xff0c;只要興趣所在&#xff0c;能把事做好&#xff0c;錢自己就會來。收入上不去&#xff0c;往往是做的事情就不在高收入的那個區間&#xff0c;寫程序很難出富翁。說實話&#xff0c;外圍一天的消費可能就是你工資的好幾倍&#xff0c;不用…

Spring Boot Servlet

上一篇我們對如何創建Controller 來響應JSON 以及如何顯示數據到頁面中&#xff0c;已經有了初步的了解。 Web開發使用 Controller 基本上可以完成大部分需求&#xff0c;但是我們還可能會用到 Servlet、Filter、Listener、Interceptor 等等。 當使用spring-Boot時&#xff0c;…

基于相關性分析系統性能瓶頸

測試的過程中&#xff0c;難免需要會遇到一些性能瓶頸&#xff0c;那么就要求我們能夠分析出性能瓶頸&#xff0c;并給出解決方案。性能瓶頸很抽象&#xff0c;我們可以通過數據使其具象。以我工作內容為例&#xff0c;服務器處理數據的能力是有限的&#xff0c;那么其處理的邊…

curl網站開發指南

curl網站開發指南 作者&#xff1a; 阮一峰 日期&#xff1a; 2011年9月 4日 我一向以為&#xff0c;curl只是一個編程用的函數庫。 最近才發現&#xff0c;這個命令本身&#xff0c;就是一個無比有用的網站開發工具&#xff0c;請看我整理的它的用法。 curl網站開發指南 阮一…

android格式化時間中文版,Android 仿微信聊天時間格式化顯示功能

本文給大家分享android仿微信聊天時間格式化顯示功能。在同一年的顯示規則&#xff1a;如果是當天顯示格式為 HH:mm 例&#xff1a;14:45如果是昨天,顯示格式為 昨天 HH:mm 例&#xff1a;昨天 13:12如果是在同一周 顯示格式為 周一 HH:mm 例&#xff1a;周一14:05如果不是同一…

java分享第十七天-01(封裝操作xml類)

做自動化測試的人&#xff0c;都應該對XPATH很熟悉了&#xff0c;但是在用JAVA解析XML時&#xff0c;我們通常是一層層的遍歷進去&#xff0c;這樣的代碼的局限性很大&#xff0c;也不方便&#xff0c;于是我們結合一下XPATH&#xff0c;來解決這個問題。所需要的JAR包&#xf…

Ubuntu12.04 內核樹建立

先查看自己使用的內核版本 linlin-virtual-machine:~$ uname -r 3.2.0-23-generic 如果安裝系統時&#xff0c;自動安裝了源碼。在 /usr/src 目錄下有對應的使用的版本目錄。 linlin-virtual-machine:~$ cd /usr/src linlin-virtual-machine:/usr/src$ ls linux-headers-3.2.0…

【mysql】Innodb三大特性之double write

1、doublewrite buffer&#xff08;mysql官方的介紹&#xff09; InnoDB uses a novel file flush technique called doublewrite. Before writing pages to the data files, InnoDB first writes them to a contiguous area called the doublewrite buffer. Only after the wr…