当前位置:首页 » 编程语言 » c语言windows串口

c语言windows串口

发布时间: 2025-08-13 02:41:09

1. windows下C语言怎么对串口进行读写操作

windows下对串口的操作可以通过WindowsAPI进行,也可以通过Linux下的read什么的直接操作,但是这种情况需要了解电路结构,比较麻烦,第三种有第三方提供的库,但是大多数针对C++,所以可能比较难找到顺手的第三方库.
那么,接下来就见要介绍一下串口通信用WindowsAPI通信的方式.

我们会发现,在文件名的位置填上"comX" X表示com口号,超过十的com口号需要另外的书写方式,这里不说了,因为网上一抓一大把,接下来,我们要对串口进行一系列的明确设置,这里就用到了一个结构体DCB结构,是专门用来描述一个com口的工作方式的,由于次结构体有28个成员,非常多,而且大部分的设置都是全世界通用的,所以,我们偷个懒,在打开一个com口之后,建立DCB结构体,接下来调用一个函数GetCommState用这个函数把现在com口的数据都写到DCB里,这样,比较通用的com口设置就已经弄好了,我们一般情况下只需要改一下DCB的波特率就好了,改好后马上用SetCommState把刚改好的结构体再写回去,这样串口就设置好了,现在还有点麻烦,串口设置好了,我们要它干什么呢?废话,读写数据呗,嘟~~~~~~可不能用fwrite和fread因为这个com口句柄不是文件句柄,是内核句柄,要用ReadFile和WriteFile来进行读写,又出麻烦了,我们怎么知道单片机什么时候发数据过来,就算我们知道,计算机什么时候知道啊?所以,一般的情况下,用ReadFile一直在哪检查,又是麻烦,通常情况下,一个com口的ReadFile设置是阻塞函数,影响编程啊!!!!!!

怎么办,很简单,你不阻塞吗,打通你呗,我们再建立里一个结构体COMMTIMEOUTS这个结构体描述里一个com口的相关超时设置,我们用GetCommTimeouts把数据读回来,具体的设置方法在网上也有,但是要注意,有一个MAXDWORD用它来设置读间隔超时设置就可以使ReadFile向kbhit()函数一样完全非阻塞了.
经过一些列的设置,事实上,现在已经可以通信了,要是有人觉得缓存不舒服,用SetupComm函数来重设缓存大小,对于传输速度比较快的通信,要把缓存设置的大些.

2. Windows下的C语言串口编程

大概说下思路,串口在编程里相当于一个文件,因此要创建句柄来操作,还要给DCB结构休赋值进行串口配置等,你可以查下DCB结构体,记得在DOS下编程时,使用#include <windows.h>。藏的深是为了更简单的使用。还有就是由于接受要一直进行检测,所以一般都专门开一线程进行监听。

3. C语言编程:如何同时打开多个串口进行通信

可以两个方式:
1、如果是 MSComm控件方式可以加入三个控件分别控制;在OnComm事件里面接收数据;用m_Comm.SetOutput(COleVariant(m_SendData));发送数据;
2、把 MSComm控件 打包在一个类里面,自己写初始化和发送接收函数;

4. 如何用C语言实现PC间串口通信逐bit传输.

想实现1bit,1bit传输,开始一个起始位,最后一个结束位,是否可以实现.

答:能!但是这是一种非标准的协议类型,就不能用一般的UART控制器实现。对于单片机来说可以用普通IO口模拟,就像18B20的单线通信一样,一个bit一个bit的发。在计算机上你可以通过驱动软件控制串口或者并口中的一条引脚,再加上一条地线就可以与另外一台计算机的对应端口的引脚进行bit方式的数据收发了。

热点内容
plc编程原理 发布:2025-08-13 09:36:59 浏览:2
我的世界服务器前缀 发布:2025-08-13 09:24:56 浏览:546
安卓手机地震预警在哪里打开 发布:2025-08-13 08:30:37 浏览:756
java发html邮件 发布:2025-08-13 08:25:14 浏览:127
压缩感知稀疏 发布:2025-08-13 08:24:39 浏览:199
安卓钉钉怎么关闭声音 发布:2025-08-13 08:17:43 浏览:529
预算法优点 发布:2025-08-13 08:13:35 浏览:996
服务器台式电脑配置要求 发布:2025-08-13 08:08:23 浏览:998
最短作业优先算法 发布:2025-08-13 08:07:00 浏览:234
linux查看arp 发布:2025-08-13 07:53:30 浏览:479