串口DCB定义,配置例程
在应用WIN32 API 对串口进行编程时, 必定使用到 DCB 结构体.
转载链接
一、首先是DCB 结构
typedef struct _DCB { DWORD DCBlength; DWORD BaudRate; DWORD fBinary: 1; DWORD fParity: 1; DWORD fOutxCtsFlow:1; DWORD fOutxDsrFlow:1; DWORD fDtrControl:2; DWORD fDsrSensitivity:1; DWORD fTXContinueOnXoff:1; DWORD fOutX: 1; DWORD fInX: 1; DWORD fErrorChar: 1; DWORD fNull: 1; DWORD fRtsControl:2; DWORD fAbortOnError:1; DWORD fDummy2:17; WORD wReserved; WORD XonLim; WORD XoffLim; BYTE ByteSize; BYTE Parity; BYTE StopBits; char XonChar; char XoffChar; char ErrorChar; char EofChar; char EvtChar; WORD wReserved1; } DCB;
二、在这个结构中,共有28个变量, 这些成员归类为几种.
1.串口的基本设置
(1)DWORD BaudRate; 波特率设置。
(2)BYTE ByteSize; 数据位设置。
(3)DWORD fParity: 1; TRUE时, 支持奇偶检验。
(4)BYTE Parity; 奇偶检验位的设置
(5)BYTE StopBits; 停止位的设置
StopBits指定端口当前使用的停止位数,可取值:
取值 意义
ONESTOPBIT 1停止位
ONE5STOPBITS 1.5停止位
TWOSTOPBITS 2停止位
RS232的停止位为什么可以为1,1.5或2;搞不懂1.5是什么意思?
解释:1.5停止位,是指停止位的“1”电平宽度的保持为1.5个单位时间长,一个单位时间就是波特率的倒数,例如波特率为9600bps,则一个单位时间长为1/9600s,1.5个停止位,即停止位电平保持1.5/9600s
2.流控制(Flow Control) 的设置
流控制分为硬件流控制和软件流控制。 而硬件流控制又分为RTS/CTS和DTR/DSR两种。而软件流控制, 则是Xon/Xoff。
DTR/DSR 硬件流控制:
(1)DWORD fOutxDsrFlow:1; TRUE时,支持DSR流控制。 当DSR为OFF时,停止发送。
(2)DWORD fDtrControl:2; DTR设置。 (置高/置低…)
(3)DWORD fDsrSensitivity:1; TRUE时,当DSR为OFF,则接收端忽略所有字符。
RTS/CTS 硬件流控制:
(4)DWORD fOutxCtsFlow:1; TRUE时,支持CTS流控制。 当CTS为OFF时,停止发送。
(5)DWORD fRtsControl:2; RTS设置。 (置高/置低…)
Xon/Xoff 软件&emsp&emsp流控制:
(6)DWORD fOutX: 1; 发送端支持Xon/Xoff。
(7)DWORD fInX: 1; 接收端支持Xon/Xoff。
(8)WORD XonLim; 当接收Buffer中的字符减少小XonLim规定的字符数, 就发送Xon字符,让对方继续发送。
(9)WORD XoffLim; 接收Buffer达到XoffLim规定的字符数, 就发送Xoff字符, 让对方停止发送。
(10)char XonChar; Xon 字符。
(11)char XoffChar; Xoff 字符。
(12)DWORD fTXContinueOnXoff:1; TRUE时,不管接收端是否Xoff, 本方发送端持续发送。 (也就是本方的发送端, 与本方接收端Xon/Xoff是相互独立的)。若为False 时,则当接收端buffer 达到XoffLim时,发送端发送完Xoff字符后,就停止发送。
3. Error 情况处理
(1)DWORD fErrorChar: 1; TRUE时,若fParity为TRUE, 则用ErrorChar替换Parity Check错误的字符。
(2)DWORD fAbortOnError:1; TRUE时,发生错误时停止读写操作。
(3)char ErrorChar; Parity Check 错误时,替换的字符。
4. 其他参数
(1)DWORD DCBlength; DCB结构的长度(以字节为单位)
(2)DWORD fBinary: 1; 二进制模式。(必须为1 )
(3)DWORD fNull: 1; TRUE时,接收时去掉空字节(0x0)
(4)char EofChar; EOF替代字符
(5)char EvtChar; 事件触发字符
(6)DWORD fDummy2:17; 保留
(7)WORD wReserved; 保留
(8)WORD wReserved1; 保留
三、配置例程
DCB dcb; //串口DCB结构体GetCommState(hCom,&dcb); //读取串口设置(波特率,校验,停止位,数据位等).dcb.BaudRate=9600; //设置波动率9600dcb.ByteSize=8; //数据长度8位dcb.Parity=NOPARITY; //无校验位dcb.StopBits=TWOSTOPBITS; //2停止位SetCommState(hCom,&dcb); //设置COM口的设备控制块
串口DCB定义,配置例程相关推荐
- stm32f407 6路串口dma如何配置_stm32cubeMX学习十、扫码模块程序开发(基于正点原子STM32F407开发板)...
本程序编写基于正点原子STM32F407开发板. 本文使用的扫码模块是下面这个品牌. 扫码模块的应用场景非常广泛,我们可以上百度搜索一下: 等等. 今天就来说说如何在开发板上实现控制它吧,打开数据手册 ...
- STM32L0系列串口重定义的方法
STM32L0系列串口重定义的方法 芯片型号:STM32L071RBT6 本篇重点:将printf( ) 函数重定义到USART1 集成开发工具(IDE):IAR 在uart已经配置好情况下,重定义f ...
- 2.3 基于FPGA的UART协议实现(一)串口信号定义和接线方法-5针串口-9针串口-全功能串口
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART.它将要传输的资料在串行通信与并行通信之间加以转换.作为把并行输入信号 ...
- QT从零开始作单片机上位机-串口调试助手+波形显示-实现串口模块的配置
目录 实现串口模块的配置(1) 一.先列举需要思考的问题: 二.所有的问题要由简单到复杂逐一解决 实现串口模块的配置(1) 完成了基本的界面设计后,我们就要着手实现功能.下来的几章我们看串口数据收发的 ...
- QT从零开始作单片机上位机-串口调试助手+波形显示-实现串口模块的配置(2)
QT实现串口模块的配置(2) 一.先列举需要思考的问题: 怎么实现点击刷新按钮后,串口工具可以自动发现可用的COM口,并将com口显示在Combobox1? 如何添加所有可用的波特率?同样给其他Com ...
- CH9121串口转以太网配置调试
CH9121串口转以太网配置调试 CH9121简介 引脚说明 模式介绍 上位机配置TCP_Client模式流程 使用软件串口配置 总结 原文链接:https://www.yourcee.com/new ...
- mcgscom口针脚定义_标准9针串口引脚定义
标准 9 针串口引脚定义 从前面的内容中,知道了串口外形,就可以继续了解其每个引脚的定义,这是做线的基础.无论是 RS-232C . RS-422 ,还是 RS-485 ,串口接口的外形.尺寸都是相同 ...
- 串口屏如何配置波特率
串口屏如何配置波特率 在Program.s中配置 bauds=你需要的波特率 记住要写在page指令之前,page指令之后的代码是不会执行的
- 串口DCB结构详细说明
串口DCB结构详细说明 成员 说明 DCBlength DCB结构大小,即sizeof(DCB),在调用SetCommState来更新DCB前必须作设置 BaudRate 指定当前采用的波特率, ...
最新文章
- editplus行转列_EditPlus常用快捷键
- 超牛逼的异步协程爬虫
- 边缘计算边缘计算edge_Edge AI-边缘上的计算机视觉推理
- vapor mysql_vapor MySQL 作为Cache
- 直接拿来用!一文学会 Docker 镜像!
- 洛谷——P1151 子数整数
- 【引用】关于close-on-exec标志
- NVivo for Mac中的编码难理解?这6个视频帮助你!
- 用这个玩吃鸡:宏按键加一键恢复加自由移动视角,你想要的功能它都有
- mysql删除某天前的数据
- 迅雷高速下载百度云盘文件
- macOS CLion 上搭建 GLFW + GLAD OpenGL开发环境
- 从hr口中了解react的状态管理库(mobx, recoil), 立马过来学习之mobx
- PPT动画制作选美大赛
- 国家也补贴?有华为认证证书的你,就能拿它(附详细操作)
- 力扣(98.107)补9.10
- Linux终端程序用c语言实现改变输出的字的颜色 (转)
- WinRAR 实现简单的自解压
- Dockerfile自定义镜像
- uCore OS(on RISC-V64)——LAB1:中断机制