串口助手笔记

本文介绍了串口通信的基本概念,包括波特率、数据位、停止位和奇偶校验等关键参数,并探讨了Windows环境下两种主要的串口编程方法:使用API函数和MSComm控件。此外,还涉及了串口通信中的信号线连接方式及电平转换问题。

//串口是按位(bit)发送和字节接收,异步通信,串口通信最重要的参数是波特率、数据位、停止位和奇偶校验

//开发PC上位机的通信程序 windows环境下的串口编程以其设备无关性、可移植性以及界面友好而得到广泛应用

// CStudentStudySystemDlg 对话框

/* 利用 Windows API ( Application Program Interface 用户程序接口) 函数 2) 利用 ActiveX 控件, MSComm 控件 

对于简单的串行口操作 MSComm 控件使用方便、控制简单,但是对于较为复杂的串行口操作,它不够灵活,它常用在对话框中,这也限制了它的使用

基于 API 的串口编程,其功能强大,控制手段更为灵活 配合 Win32的重叠 I/O 操作和多线程设计 就可以编写出高效、灵活的通信程序*/

//发送数据TxD端和接受数据RxD端交叉连接,信号地SG对应连接  三线交叉连接 PC和单片机

//七线交叉连接:适用用PC与PC之间 接信号对为:(TxD,RxD)、(RxD,TxD)、(SG,SG)、(RTS,CTS)、(CTS,RTS)、(DSR.DTR)、(DTR,DSR)

//RTS为请求发送,CTS为准许发送,DSR为数据装置准备好,DTR为数据终端准备好

//如果单片机是TTL型(>2.4V表示1,小于0.5V表示0),则需要电平转换,RS232(-12V表示1,+12V表示0)

//串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。

//长距离通信

//API函数是通过CrateFile来打开串口.因为在Win32系统中,串口被看作一个文件,使用与文件相同的操作方式进行操作

//Settimer是设置一个计时器并开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。

/*CButton* p_AutoSend=(CButton*)this->GetDlgItem(IDC_CHECK_AUTOSEND);//获取控件指针

转载于:https://www.cnblogs.com/RanmmBlog/p/6165551.html

模拟设备,发送串口数据 基于界面的串口监控工具 串口设备模拟使用方法如下: 1. 命令行启动 SerialportServer -port port -frm framfile 参数port: 所打开的串口,在windows下为诸如COM1 COM2的名字,在linux下则一般为ttyS0 ttyS1等 参数frmfile: 对应的报文文件,一般基于xml的frm文件,也可以用其它的后缀名 2. 基于xml的frm文件格式,如下: <?xml version="1.0" encoding="UTF-8"?> <SerialportServer> <SerialportConfig baudRate="9600" dataBits="8" parity="EvenParity" stopBits="1" flowControl="NoFlowControl" /> <Device name="CmmInv" desc="逆变电源"> <Frame name="CmmInv" dest="逆变电源模拟量1查询"> <Require value="80 03 00 00 00 01 9A 1B" /> <Response value="80 03 02 08 98 82 30" /> </Frame> <Frame name="CmmInv" dest="逆变电源模拟量2查询"> <Require value="80 03 00 05 00 03 0B DB" /> <Response value="80 03 06 08 98 13 88 00 00 E9 19" /> </Frame> <Frame name="CmmInv" dest="逆变电源模拟量3查询"> <Require value="80 03 00 0A 00 02 FA 18" /> <Response value="80 03 04 03 E8 03 E8 EB F5" /> </Frame> <Frame name="CmmInv" dest="通信电源模拟量查询"> <Require value="91 03 00 00 00 03 18 9B" /> <Response value="91 03 06 01 E0 00 00 01 F4 0D 63" /> </Frame> <Frame name="CmmInv" dest="逆变电源状态查询"> <Require value="80 03 00 0F 00 01 AA 18" /> <Response value="80 03 02 00 60 84 72" /> </Frame> <Frame name="CmmInv" dest="通信电源状态量查询"> <Require value="91 03 00 05 00 01 89 5B" /> <Response value="91 03 02 00 03 38 58" /> </Frame> </Device> </SerialportServer> (1) 文件保存格式为utf-8,基于xml1.0 (2) SerialportServer为根节点,名字必须为SerialportServer,且作为根节点,其下只能有0到1个SerialportConfig节点,0到多个Device节点 (3) SerialportConfig为串口配置节点,其下没有子节点。此节点为可选节点,如果无此节点,则串口按默认值运行,默认值见(4)。 各个属性意义和取值范围如下; baudRate: 波特率,根据你所用硬件支持的波特率范围中选择你需要的波特率设置即可,注意此值为整数 dataBits: 数据位,可取5 6 7 8,如果设置其它值将被视为无效,系统则强制取默认值填充 parity: 校验方式,可取NoParity, EvenParity, OddParity, SpaceParity, MarkParity,如果设置其它值勤将视为无效,系统则强制取默认值填充 stopBits: 停止位,可取1 1.5 2,如果设置其它值勤将视为无效,系统则强制取默认值填充 flowControl:流控制方式,可取NoFlowControl, HardwareControl, SoftwareControl,如果设置其它值勤将视为无效,系统则强制取默认值填充 (4) 串口默认运行参数为:baudRate="9600" dataBits="8" parity="EvenParity" stopBits="1" flowControl="NoFlowControl" (5) Device为装置/设备节点,这只是为了维护而定义的逻辑设备。其下可以有0到多个Frame节点。用户可以按自己的需要把同一设备的数据分到不同的Device节点下,也可以把多个设备的数据放到同一个Device下。 name和desc属性只作为方便维护用,用户也可以不写此属性,程序也不读取其中的值 (6) Frame为帖单元节点,包括一个Require节点和一个Response,此节点的name和desc属性是可选的,只作为方便维护用,用户也可以不此属性,程序也不读取其中的值 (7) Require为接收报文的匹配值,其下不包括任何子节点,value属性是必须的,它的值为接收报文对应的十六进制数据,每个字节对应一个十六进制数据,字节之间用空格隔开,空格不作为报文的内容 (8) Response为发送报文的匹配值,其下不包括任何子节点,value属性是必须的,它的值为发送报文对应的十六进制数据,每个字节对应一个十六进制数据,字节之间用空格隔开,空格不作为报文的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值