1.手把手教你把JLink变成串口调试助手
2.如何使用串口调试助手
3.VisualC++/TurboC串口通信编程实践(第2版)目录
4.Visual C++/Turbo C串口通信编程实践目录
手把手教你把JLink变成串口调试助手
在单片机开发过程中,串串口打印调试信息通常依赖于串口调试。口调通常,试助手源我们会预留串口1进行调试,编写但如果在实际项目中没有预留,调试JLink仿真调试器可以成为你的助手预测红单源码得力助手。JLink,串串口由SEEGER公司出品,口调体积小巧,试助手源只有四根线,编写非常适合携带和使用,调试尤其适合ST系列芯片的助手开发。
首先,串串口确保你的口调电脑上已安装JLink驱动,可以从segger.com下载最新版本的试助手源JLink V7.或更高版本。安装完成后,你将发现安装目录下包含RTT功能的相关文件。RTT源码包位于JLink驱动的Samples\RTT文件夹中,只需将其复制到项目文件夹并与工程中的.c文件集成即可。
接下来,配置RTT功能。在编译无误后,连接JLink下载器,linux源码安装eclipse并启动JLinkRTTViewer.exe。配置好RTT参数,将程序下载到单片机,就能看到打印信息了。注意,RTT的缓冲大小可自定义,以适应大量信息的打印需求。
RTT还支持多虚拟端口打印,以及颜色定制,只需在字符串前添加对应宏定义。此外,你还可以通过重定向printf到RTT来简化调试,只需替换fputc函数即可。这样,即使在没有预留串口的情况下,你也能轻松进行调试和打印信息。
总结来说,当遇到项目中无串口调试需求时,JLink的RTT功能是一个实用的解决方案,可以根据具体项目的特点灵活运用。通过这个方法,你可以轻松地在单片机开发中实现调试打印。企业推广网站源码
如何使用串口调试助手
串口通信基本接线方法
--------------------------------------------------------------------------------
目前较为常用的串口有9针串口(DB9)和针串口(DB),通信距离较近时(<m),可以用电缆线直接连接标准RS端口(RS,RS较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS相连。
1.DB9和DB的常用信号脚说明
9针串口(DB9) 针串口(DB)
针号 功能说明 缩写 针号 功能说明 缩写
1 数据载波检测 DCD 8 数据载波检测 DCD
2 接收数据 RXD 3 接收数据 RXD
3 发送数据 TXD 2 发送数据 TXD
4 数据终端准备 DTR 数据终端准备 DTR
5 信号地 GND 7 信号地 GND
6 数据设备准备好 DSR 6 数据准备好 DSR
7 请求发送 RTS 4 请求发送 RTS
8 清除发送 CTS 5 清除发送 CTS
9 振铃指示 DELL 振铃指示 DELL
2.RSC串口通信接线方法(三线制)
首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连
· 同一个串口的接收脚和发送脚直接用线相连 对9针串口和针串口,均是2与3直接相连;
· 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)
上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。
3.串口调试中要注意的几点:
串口调试时,准备一个好用的方倍支付源码调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
单工、半双工和全双工的定义
如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。
如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。
如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。
电话线就是二线全双工信道。 由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,源码开发图片采用分离的线路或频带传输相反方向的信号,如回线传输。
奇偶校验
串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符‘E’,其各位为:
,=H
D7 D0
由于干扰,可能使位变为1,这种情况,我们称为出现了“误码”。我们把如何发现传输中的错误,叫“检错”。发现错误后,如何消除错误,叫“纠错”。
最简单的检错方法是“奇偶校验”,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。
奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数,如:
1 ,
0 ,
偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如:
1 ,
0 ,
奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。
有些检错方法,具有自动纠错能力。如循环冗余码(CRC)检错等。
串口通讯流控制
我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS编程,了解一点这方面的知识是有好处的。那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?这里我们就来谈谈这个问题。
1.流控制在串行通讯中的作用
这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。 PC机中常用的两种流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和软件流控制XON/XOFF(继续/停止),下面分别说明。
2.硬件流控制
硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。
硬件流控制必须将相应的电缆线连上,用RTS/CTS(请求发送/清除发送)流控制时,应将通讯两端的RTS、CTS线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用CTS来起动和暂停来自计算机的数据流。这种硬件握手方式的过程为:我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的%)和一个低位标志(可为缓冲区大小的%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置低电平(送逻辑0),当发送端的程序检测到CTS为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平。RTS则用来标明接收设备有没有准备好接收数据。
常用的流控制还有还有DTR/DSR(数据终端就绪/数据设置就绪)。我们在此不再详述。由于流控制的多样性,我个人认为,当软件里用了流控制时,应做详细的说明,如何接线,如何应用。
3.软件流控制
由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。一般通过XON/XOFF来实现软件流控制。常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出XOFF字符(十进制的或Control-S,设备编程说明书应该有详细阐述),发送端收到XOFF字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出XON字符(十进制的或Control-Q),发送端收到XON字符后就立即开始发送数据。一般可以从设备配套源程序中找到发送的是什么字符。
应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。
--
VB示例程序MSComm演示了如何使用该控件开发通讯软件
--
/vbasic.shtml
--
VB有一个例子在Samples\CompTool\Mscomm中。你可以利用这个例子来学习串口编程。
打开串口先设置CommPort属性(端口号),使用PortOpen=True就可以了。
串口数据保存在MSComm的Input属性中。你可以使用下面的代码:
Dim v As Variant
v = MSComm1.Input
For i = 0 To MSComm1.InBufferCount - 1
Debug.Print v(i)
Next
VisualC++/TurboC串口通信编程实践(第2版)目录
第1章轻松体验串口通信编程与调试 1.1初识串口 1.1.1从外观上了解串口 1.1.2串口通信的发展前景 1.2自己制作简单的串口线 1.2.1三线制串口接线的规定 1.2.2焊接制作自己的串口连接线 1.3调试串口通信程序时的几种技巧 1.3.1查看计算机串口资源 1.3.2常规调试两个物理串口之间的通信 1.3.3特殊调试单个物理串口之间的通信 1.3.4虚拟串口为计算机添加取之不尽的串口资源 1.4使用串口调试助手来体验串口通信 1.5体验Windows环境下Visual C++串口通信编程 1.6体验DOS环境下Turbo C串口通信编程 第2章多线程串口编程工具CSerialPort类 2.1CSerialPort类的功能及成员函数介绍 2.2应用CSerialPort类编制基于对话框的应用程序 2.3应用CSerialPort类编制基于单文档的应用程序 2.4对CSerialPort类的改进 2.4.1改进一:ASCII文本和二进制数据发送方式兼容 2.4.2改进二:也许能解决内存泄漏 2.4.3改进三:彻底关闭串口释放串口资源 2.5在Visual C++.NET中应用CSerialPort类 第3章控件MSComm串口编程 3.1MSComm控件详细介绍 3.1.1VC6.0中应用MSComm控件编程步骤 3.1.2MSComm控件串行通信处理方式 3.1.3MSComm控件的属性说明 3.1.4MSComm控件错误信息 3.2使用MSComm控件的几个疑难问题 3.2.1使用、VARIANT和SAFEARRAY数据类型从串口读写数据 3.2.2MSComm控件能离开对话框独立存在吗 3.2.3如何发送接收ASCII值为0和大于的字符 3.2.4在同一程序中用MSComm控件控制多个串口的具体操作方法 3.2.5解决使用控件编程时程序占用的内存会不断增大的问题 3.2.6在MSComm控件串口编程时遇到的其他问题 3.3在基于单文档(SDI)程序中应用MSComm控件 3.4应用MSComm控件控制多个串口实例 3.5串口与MODEM拨号应用简例 3.5.1创建工程 3.5.2代码分析 3.5.3应用 第4章Windows API串口编程 第5章串口调试助手V2.2详细编程 第6章DOS环境下的Turbo C串口编程及通用实例GSerial类 第7章数据处理方法与串口通信用户层协议的编制 第8章单片机串口通信 第9章串口与网络结合的解决方案及编程 第章计算机串口与其他通信协议设备的联接 第章串口通信基本概念及标准 第章不占用串口的串口数据捕捉 附录A Turbo C说明 附录B ASCII码表扩展资料
《VisualC++/TurboC串口通信编程实践(第2版)》是一本由电子工业出版社于-9-1出版的一本电子书籍,作者是龚建伟,熊光明。从编程实践角度详细介绍了PC计算机Windows环境下、DOS环境下以及单片机的串口通信的基本方法,并根据当前串口与网络结合的发展趋势,给出了串口与TCP/IP网络、远程监控相结合的解决方案与详细程序实例。Visual C++/Turbo C串口通信编程实践目录
轻松体验串口通信编程与调试
使用串口调试助手来体验串口通信
体验Windows环境下的Visual C++串口通信编程
体验DOS环境下Turbo C串口通信编程
多线程串口编程工具CSerialPort类功能及成员函数介绍
应用CSerialPort类编制基于对话框的应用程序
应用CSerialPort类编制基于单文档的应用程序
对CSerialPort类的改进
改进一:ASCII文本和二进制数据发送方式兼容
改进二:也许能解决内存泄漏
改进三:彻底关闭串口,释放串口资源
MSComm控件介绍
VC中应用MSComm控件编程步骤
MSComm控件串行通信处理方式
MSComm 控件的属性说明
MSComm控件错误信息
使用MSComm控件的几个疑难问题
使用VARIANT 和SAFEARRAY 数据类型从串口读写数据
MSComm控件能离开对话框独立存在吗
如何发送接收ASCII值为0和大于的字符
在同一程序中用MSComm控件控制多个串口的具体操作方法
解决使用控件编程时程序占用的内存会不断增大的问题
MSComm控件串口编程时遇到的其他问题
在基于单文档(SDI)程序中应用MSComm控件
应用MSComm控件控制多个串口实例
串口与MODEM拨号应用简例
创建工程
代码分析
应用
Windows API串口编程概述
API串口编程中用到的结构及相关概念说明
DCB(Device Control Block)结构
超时设置COMMTIMEOUTS结构
OVERLAPPED异步I/O重叠结构
通信错误与通信设备状态
串行通信事件
Windows API串行通信函数
Win API串口通信编程的一般流程和特殊实例
Win API串口通信编程的一般流程
用查询方式读串口
同步I/O读写数据
关于流控制的设置问题
CSerialPort类中的API函数编程应用剖析
Win API串口编程TTY(虚拟终端)实例
建立程序工程
建立串口设置对话框
编写CTermDoc类的相关代码
小结
在CTermView类中字添加符键入处理代码与串口接收处理代码
建立SCOMM程序工程实现界面功能
串口的初始化及关闭
串口数据的发送与接收及十六进制数据的处理
十六进数据发送处理
手动发送处理
自动发送处理
接收处理及十六进制显示
其他辅助功能的实现
接收数据的文件保存
实现小文件发送
图钉按钮功能使程序能浮在最上层
对话框动画图标的实现
超链接功能的实现
如何打开帮助网页文件
PC机异步通信适配器及其编程操作
INS内部寄存器及其选择方式
波特率设置
数据位、奇偶校验、停止位等数据格式设置
查询I/O方式相关设置
中断I/O通信方式相关设置
MODEM寄存器
COMRXTX程序实例
通用实例程序GSerial类
用GSerial类控制多串口
多串口编程PC机高号中断A可编程中断控制器的控制
通信协议的编制
为什么要编制用户通信协议
串口通信中用户层协议编制原则
在串口通信中几种常用的用户层协议
串口通信数据包处理方法编程实例
编程任务
编程步骤
程序测试
单片机串口硬件系统及C程序开发
较典型的单片机硬件系统实例
C语言及程序简介
开发C程序的利器Keil C uVision2及串口程序仿真
C单片机串口通信程序实例
实例一
实例二
串口与网络结合的解决方案及编程
串口与网络结合的硬件解决方案
典型串口与联网的设备
NPort系列产品的特点
NPort 系列产品的典型应用介绍
NPort系列产品的设置与编程测试
与Access数据库结合的串口通信实例
微机网络检测系统说明
创建ODBC数据源
创建工程
程序简介
与WinSock结合的串口通信实例
客户端应用程序
服务器应用程序
在已经编好的串口通信程序中加入网络通信功能
参照MFC AppWizard创建WinSockets程序
利用Windows Sockets API和第三方提供的类进行编程
串口通信用于遥控操作简例
通过串口收发短消息
SMS编码规范及编码与解码例程
AT命令收发短消息实例
“实时”接收短消息的方法
用串口收发SMS短信编程的一些讨论
计算机与Rabbit 嵌入式系统通信编程实例
Rabbit 微处理器介绍
动态C(Dynamic C)语言介绍
某车载无线调度系统实例介绍
计算机与PLC通信程序实例
MATLAB环境串口编程通信实例
MATLAB串口类Serial应用
通过串口使MATLAB Simulink与下位机通讯进行控制
xPC目标环境下串口通信实现
计算机串口与其他设备通信编程实例
通过串口收发短消息
SMS编码规范及编码与解码例程
AT命令收发短消息实例
“实时”接收短消息的方法
串口通信基本概念及标准
串口通信基本概念
单工、半双工和全双工的定义
同步传送与异步传送
串行通信协议
RS--C串口标准
RS--C标准
RS--C串行通信接线实例
RS-/串口标准
概述
RS-与RS-串行接口标准
RS-与RS-的网络安装注意要点
RS-、RS、RS电气参数对比
串口调试注意事项
常用数据校验法
奇偶校验
循环冗余码校验
串口连接和TCP/IP连接对比
现场总线与RS-、RS-的本质区别
MODEM通信技术
MODEM的基本工作原理
MODEM的功能
MODEM的分类
MODEM的安装
MODEM V.标准介绍
MODEM的速度
MODEM优化方法
MODEM命令/AT命令
不占用串口的串口数据捕捉
驱动程序的基本概念:VxD与WDM
虚拟设备驱动程序VxD
Win驱动程序模型WDM
在不同操作系统下选用哪种驱动程序模式
VxD示例程序介绍——VToolsD中的CommHook
串口数据捕捉实例程序
编程任务
编程步骤
虚拟串口简介
Turbo C说明
ASCII码表