串口通信测试方法
- 格式:doc
- 大小:81.00 KB
- 文档页数:9
232串口通信调试步骤串口通信调试是指通过串口进行数据传输时,对串口通信过程进行排错和优化的过程。
串口通信调试可以帮助解决串口通信中的问题,提高通信的可靠性和稳定性。
下面是详细的串口通信调试步骤:1.确定串口参数:在开始调试之前,首先要确定串口的参数,如波特率、数据位、停止位和奇偶校验位等。
这些参数应该与目标设备中配置的参数一致,才能正确地进行数据传输。
2.确定串口硬件连接:确认串口线正确连接,并确保没有松动的连接。
检查串口连接线的焊接是否牢固,无虚焊、短路等问题。
确保串口的接地是可靠的。
3.检查串口驱动:在计算机系统中,确保串口驱动程序已正确安装,并且是最新版本。
检查设备管理器中是否存在串口,如果不存在,则需要安装对应的驱动程序。
4. 使用串口调试工具:使用串口调试工具(如Tera Term、SecureCRT等)对串口进行调试。
打开串口调试工具并选择相应的串口号、波特率等参数,然后打开串口。
如果无法打开串口,可能是由于驱动程序的问题或者设备被占用的原因,需要进行相应的排错处理。
5.发送数据:在串口调试工具中,可以发送数据给目标设备。
发送的数据可以是命令、控制指令、配置参数等内容。
通过发送数据,可以测试串口通信是否正常。
确认数据发送是否成功,可以通过查看串口调试工具的发送状态、接收状态等来进行判断。
6.接收数据:在串口调试工具中,可以接收目标设备发送回来的数据。
通过接收数据,可以确认目标设备是否正常接收到指令,并且返回了正确的响应。
可以通过查看串口调试工具中的接收状态、接收数据的内容等来进行判断。
7.数据分析和处理:接收到的数据可能是二进制数据、ASCII字符等形式。
对于二进制数据,可以通过解析数据包的格式,提取出相应的字段信息。
对于ASCII字符,可以通过查表和字符串处理函数进行解析和处理。
根据具体的要求和应用场景,对数据进行适当的分析和处理。
8.错误处理与优化:如果在串口通信过程中出现错误,需要逐步进行排错处理。
stm32串口通信实验原理STM32是一款由STMicroelectronics公司推出的基于ARM Cortex-M 内核的32位微控制器。
在STM32系列中,串口通信是一种常见的外设模块,可以实现与其他设备之间的数据传输。
本文将介绍STM32串口通信的原理及实验方法。
一、串口通信的原理串口通信是一种通过串行方式传输数据的通信方式。
在串口通信中,数据是一位一位地依次发送或接收的。
与并行通信相比,串口通信只需要两根信号线即可实现数据的传输,因此在资源有限的嵌入式系统中被广泛应用。
STM32的串口通信模块包括多个寄存器,其中包括控制寄存器、状态寄存器、数据寄存器等。
通过配置这些寄存器,可以实现串口通信的参数设置和数据的发送接收。
二、STM32串口通信的实验步骤以下是一种基本的STM32串口通信实验步骤:1. 硬件连接:将STM32开发板的串口引脚与其他设备的串口引脚通过串口线连接起来。
一般来说,串口通信需要连接的引脚包括TX (发送引脚)、RX(接收引脚)、GND(地线)。
2. 引脚配置:通过STM32的引脚复用功能,将相应的GPIO引脚配置为串口功能。
具体的引脚配置方法可以参考STM32的开发板手册或者相关的资料。
3. 时钟配置:配置STM32的时钟源,使得串口通信模块能够正常工作。
一般来说,串口通信模块使用的时钟源可以选择系统时钟或者外部时钟。
4. 串口配置:配置串口通信模块的参数,包括波特率、数据位、停止位、校验位等。
这些参数的配置需要根据实际的通信需求来确定。
5. 数据发送:通过向数据寄存器写入数据,向其他设备发送数据。
在发送数据之前,需要通过状态寄存器的标志位判断串口是否空闲,以确保数据能够正常发送。
6. 数据接收:通过读取数据寄存器的数据,从其他设备接收数据。
在接收数据之前,需要通过状态寄存器的标志位判断是否有数据到达,以确保数据能够正确接收。
7. 中断处理:在串口通信过程中,可以使用中断来实现数据的异步传输。
串口测试奇偶检验的实例串口通信是一种常见的通信方式,用于在不同设备之间传输数据。
在串口通信中,奇偶校验是一种常用的错误检测方法。
下面是一个简单的串口测试奇偶校验的实例。
假设我们使用Python的pyserial库来进行串口通信。
首先,安装pyserial库:pip install pyserial然后,我们可以编写一个简单的程序来测试串口的奇偶校验功能。
pythonimport serial# 创建串口对象ser = serial.Serial('COM1', 9600, timeout=1)# 设置奇偶校验位ser.parity = serial.PARITY_ODD # 设置为奇校验# ser.parity = serial.PARITY_EVEN # 设置为偶校验# 发送数据data = b'Hello, world!'ser.write(data)# 接收数据response = ser.read(10) # 读取10个字节的数据# 关闭串口ser.close()print('发送的数据:', data)print('接收的数据:', response)在这个例子中,我们首先创建了一个串口对象,并指定了串口的名称、波特率和超时时间。
然后,我们设置了奇偶校验位,并发送了一个数据包。
在接收数据时,我们读取了10个字节的数据,并打印了发送和接收的数据。
请注意,这个例子只是一个简单的演示,实际应用中可能需要更复杂的错误处理和数据解析逻辑。
此外,还需要根据具体的设备和协议进行适当的配置和调整。
串口通信的配置方法串口通信是指通过串口来进行通信的一种方式。
在计算机中,串口是指通过一组用于数据传输的引脚来进行通讯的接口。
而串口通信就是通过这个接口来进行数据传输的方式。
串口通信有很多的应用场景,比如数据采集设备、数码相机、手持设备、工业自动化设备等等。
要想进行串口通信,就需要对串口进行配置。
下面就来介绍一下串口通信的配置方法。
1. 确认串口的端口号在计算机中,每个串口都会被分配一个端口号,以便系统能够识别和控制每个串口的工作状态。
一般情况下,我们需要在设备管理器中查看串口的端口号。
打开设备管理器以后,我们可以看到电脑中所有的硬件设备的列表。
在这个列表中,我们可以找到“端口”这一项,点击展开后就可以看到所有的串口。
在这个列表中,可以查看每个串口的端口号,并确定需要使用的串口。
2. 配置串口参数串口通信需要配置一些参数,以便计算机能够正确地进行数据传输。
这些参数包括波特率、数据位、停止位和校验位。
波特率指的是每秒钟传输的数据位数。
数据位指的是在每个字节中传输的数据位数。
停止位指的是每个传输字节后需要多少个停止位。
校验位指的是用于检测数据是否正确的一位。
在进行串口通信前,我们需要确定这些参数的数值,并在计算机中进行配置。
3. 使用串口调试工具测试通讯在进行串口通信时,我们需要一些工具来检测通讯是否正常。
一种常用的工具就是串口调试工具。
这个工具可以用来发送和接收数据,以便测试串口的通讯状态。
使用串口调试工具时,需要先选择要使用的串口,并配置好相应的参数。
然后,就可以发送数据并接收返回数据,以检测通讯是否正常。
如果出现了异常,需要根据具体的情况来调整参数或检查硬件设备。
4. 编写串口通信程序最后一步就是编写串口通信程序了。
在编写程序时,需要使用相应的编程语言,并进行串口的初始化和参数设置。
然后,就可以进行数据的发送和接收了。
在进行串口通信程序开发时,需要注意以下问题:1. 数据传输的格式和协议:不同的设备可能使用不同的数据格式和协议,需要在程序中进行相应的设置。
H7210 GPRS DTU测试报告一、因附带光盘部分测试工具不能使用,测试中遇到的问题有:参数配置:附带光盘H7210管理工具不能用,经技术支持发来可用H7200管理工具①连接设置:波特率要求57600,密码admin②连接:打开串口后连接,必须在连接DTU前使其在不通电状态,点击“连接”后再通电③接入点名称:不同SIM卡接入点不同移动卡联通卡④DSN的IP地址:隔天演示如有不能连接服务情况,有可能公网IP有变,须重新配置,如:直至如下显示才OK⑤服务端口:IP地址的服务端口配置时必须对应,如:⑥波特率和校验位:测试用软件设置必须和所配置的一至二、参数配置三、DTU和无线数据中心演示1、DTU2、无线数据中心演示系统四、测试1、接串口测试,可双向通信①使用测试工具:“SSCOM32”和“演示系统”②串口线向DTU发送信号:在字符串输入框输入字符,可定时发送,演示中心显示,如:发送接收③日志查询:可查询上线、下线记录,信号发送记录④演示系统直接向DTU发信号,SSCOM3.2有相应记录2、接“通信主机”测试,15分钟收发信号一次,测试OK注:本DTU有空闲时自动上线和下线功能,即15分钟的收发周期内,空闲期间DTU能设置自动下线,并在收发信号前又自动上线,设置如下:①下线时间为0,即不自动下线②空闲下线时间为0既不在空闲时自动下线③重连接间隔3、DTU测试工具,测试信号收发质量,以及稳定性,相关设置需正确注:使用此测试工具需对参数配置进行如下设置测试结果如下:五、人为掉线测试1、在人为给DTU断电使其断线时,DTU测试工具收发信号包数量不一,有错包率,会丢包。
重新连上后丢包数量不再增加,自给DTU重新通电点完全连上大约需要50秒。
2、接串口测试时,无线数据中心演示系统连上后,在人为给DTU断电使其断线后,再重新为其通上电,10秒钟内sscom32测试工具会有如下显示已重新连接上无线数据中心演示系统正在DTU重新通上电后40秒左右再次有信号接收总结:经20多天测试,除人为掉线测试外,H7210 GPRS DTU未有掉线情况,具体配置可依据现场需求而设置。
一种车机系统通信串口压力测试系统及方法与流程1. 背景介绍车机系统作为现代汽车的重要组成部分,其通信串口的稳定性和性能一直是汽车制造商和系统供应商关注的焦点。
通信串口压力测试是评估车机系统通信串口性能和稳定性的重要手段之一。
本文将针对一种车机系统通信串口压力测试系统及方法与流程展开全面评估和讨论。
2. 系统及方法概述该测试系统采用了先进的测试工具和方法,通过模拟车载设备与外部设备之间的通信过程,对通信串口进行压力测试和性能评估。
测试方法涵盖了串口通信参数设置、数据传输稳定性测试、异常数据处理能力测试等多个方面,以全面评估车机系统通信串口的稳定性和性能。
测试流程包括测试准备、参数设置、压力测试执行、数据分析和报告生成等多个环节,确保测试全面、系统和可靠。
3. 深度评估在针对该压力测试系统及方法的深度评估中,我们发现其在测试覆盖范围、灵活性和可靠性上都表现出色。
通过对不同通信场景、数据量和速率的测试,该系统能够全面评估车机系统通信串口的性能,为系统设计和优化提供重要参考。
测试方法的灵活性和可定制性也为不同车机系统的压力测试提供了便利,无论是传统有线通信还是无线通信,均能够适应。
4. 个人观点对于车机系统通信串口压力测试,我个人认为其重要性不言而喻。
现代汽车已经越来越依赖于各种通信功能,而通信串口作为数据交换的重要通道,其稳定性和性能直接关系到整个车机系统的可靠性和用户体验。
采用先进的压力测试系统及方法对其进行全面评估非常必要,只有在各种复杂通信场景下进行全面测试,才能确保车机系统通信串口在实际使用中的稳定性和性能。
总结通过对一种车机系统通信串口压力测试系统及方法的全面评估,我们了解到该系统在测试覆盖范围、灵活性和可靠性方面表现出色,能够全面评估车机系统通信串口的稳定性和性能。
个人观点认为,车机系统通信串口的稳定性和性能对整个车机系统的可靠性和用户体验至关重要,因此采用先进的压力测试系统及方法对其进行全面评估至关重要。
串口通信crc校验计算
在串口通信中,CRC(循环冗余校验)是一种常用的校验方法,用于检测数据传输过程中的错误。
下面是一个简单的CRC校验计算示例,使用的是CRC-16(也称为Xmodem CRC)算法。
假设我们要发送的数据是 0x55 0x44 0x33 0x22,我们可以按照以下步骤计算CRC校验值:
1. 确定生成多项式。
在CRC-16中,常用的生成多项式是 0x1021(二进制表示为 1000000000000010000000001)。
2. 将数据左移16位,与生成多项式进行异或操作。
在本例中,数据左移后的结果为 0x55443322'00000000。
3. 将异或操作的结果与生成多项式进行模2除法,得到余数。
在本例中,余数为 0x243F(二进制表示为 1001010001111111)。
4. 将余数左移16位,与原数据拼接起来,得到CRC校验码。
在本例中,CRC校验码为 0x55443322'243F。
以上是一个简单的CRC校验计算示例,实际应用中可能需要根据具体的协议和数据进行调整。
测试电脑的串口是否是好的最完整最可靠的方法就是连接一个真实的串口通信线路(总5页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除测试电脑的串口是否是好的最完整最可靠的方法就是连接一个真实的串口通信线路,2 端用相应软件,如串口调试助手之类的,相互发送发送数据,看另外一端是否能正常接收!当然,也可以简单的单台机器测试,即短接串口的 2、3 两针,用相应软件,如串口调试助手,发送数据,看能否回显发送的数据串口测试工具使用说明之一——串口调试工具回复 6|人气 1387|收藏|打印|推荐给版主分享文章到:ye_w个人主页给TA发消息加TA为好友发表于:2010-09-30 19:52:48 楼主使用串口实现网络通讯,不仅仅需要熟悉控制双方的指令和相关的协议,而且还需要善于使用串口测试工具。
在串口测试工具中,最常用的就是串口调试工具。
这个串口调试工具网络上一大把,大家百度一下就能下载到(包括我逐步发布的调试工具,都不会提供资源,请大家直接去网络上查找),常用的包括:串口调试助手,串口精灵,Comm等。
我也一直使用串口调试助手,下面就是用图形并茂的方式来介绍,请大家指出不足,以便共同进步。
串口调试助手,网络上的版本也有不少,我截2个不同版本的图,但本质没有区别版本一怎样测试串口和串口线是否正常?一步:把串口线或者USB转串口线插到计算机上。
二步:打开串口调试助手接着选择串口,串口线和USB转串口的端口号查看路径:电脑上--右键--属性--硬件--设备管理器-端口(COM和LPT),点开端口前面的+号查看即可。
注释:1、USB-SERIAL CH340(COM4)就是USB转串口的端口号2、通讯端口(COM1)是计算机原来自带的端口号第三步:设置串口调试助手(见下图)1、串口:COM4是和串口线或者USB转串口线在上述路径中查看到的端口号。
2、发送的字符/数据:图片上输入的是59,你可以随便输入2位数字。
串口通信测试方法1关于串口通信的一些知识:RS-232C就是目前最常用的串行接口标准,用来实现计算机与计算机之间、计算机与外设之间的数据通信。
在PC机系统中都装有异步通信适配器,利用它可以实现异步串行通信。
而且MCS-51单片机本身具有一个全双工的串行接口,因此只要配以电平转换的驱动电路、隔离电路就可以组成一个简单可行的通信接口。
由于MCS-51单片机的输入与输出电平为TTL电平,而PC机配置的就是RS-232C标准串行接口,二者电气规范不一致,因此要完成PC机与单片机的数据通信,必须进行电平转换。
注明:3)RS-232C上传送的数字量采用负逻辑,且与地对称逻辑1:-3 ~-15V逻辑0:+3~+15V所以与单片机连接时常常需要加入电平转换芯片:2 实现串口通信的三个步骤:(1) 硬件连接51单片机有一个全双工的串行通讯口,所以单片机与计算机之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,比如计算机的串口就是RS232电平的,而单片机的串口就是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换。
我们采用了三线制连接串口,也就就是说与计算机的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。
电路如下图所示,MAX232的第10脚与单片机的11脚连接,第9脚与单片机的10脚连接,第15脚与单片机的20脚连接。
使用MAX232串口通信电路图(9孔串口接头)(2)串行通信程序设计①通信协议的使用通信协议就是通信设备在通信前的约定。
单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。
假定我们需要在PC 机与单片机之间进行通信,在设计过程中,有如下约定:0x31:PC机发送0x31,单片机回送0x01,表示选择本单片机;0x**:PC机发送0x**,单片机回送0x**,表示选择单片机后发送数据通信正常;在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。
串口通信回环测试参考文献引言串口通信是一种常用的数据传输方式,在嵌入式系统、工业自动化、电子设备等领域广泛应用。
为了确保串口通信的可靠性和稳定性,需要进行回环测试。
本文将通过参考文献,介绍串口通信回环测试的原理、方法和实施步骤,以及常见问题的解决方案。
一、回环测试的原理和目的回环测试是通过将串口的发送引脚与接收引脚连接,将发送的数据直接回读,验证数据的准确性和传输的稳定性。
回环测试的目的是检测串口通信是否正常,以及排除硬件和软件方面的故障。
二、回环测试的方法和步骤1. 硬件回环测试硬件回环测试通过连接发送引脚(TX)和接收引脚(RX)实现。
具体步骤如下:(1)将一根串口线的发送引脚(TX)和接收引脚(RX)连接在一起。
(2)打开串口终端软件,设置串口号、波特率等参数。
(3)发送数据,然后查看接收到的数据是否与发送的数据一致。
2. 软件回环测试软件回环测试通过使用串口调试助手等工具模拟串口设备,实现数据的发送和接收。
具体步骤如下:(1)下载并安装串口调试助手等工具。
(2)打开串口调试助手,设置串口号、波特率等参数。
(3)发送数据,在接收窗口查看接收到的数据是否与发送的数据一致。
三、常见问题及解决方案1. 数据接收异常问题描述:发送的数据无法正常接收。
解决方案:检查串口线是否连接正确,检查串口参数是否设置正确,检查串口驱动是否安装正确。
2. 数据传输错误问题描述:发送的数据与接收的数据不一致。
解决方案:检查串口线是否接触良好,检查串口参数是否设置一致,检查串口通信的时序是否正确。
3. 传输速率异常问题描述:数据传输速率过慢或过快。
解决方案:检查串口波特率是否设置正确,检查串口设备的硬件支持的最大传输速率。
4. 数据丢失问题描述:发送的数据在传输过程中丢失。
解决方案:检查串口线是否损坏,检查串口设备的缓冲区是否设置合理,增加数据传输的校验机制。
四、总结串口通信回环测试是确保串口通信可靠性的重要步骤。
通过硬件回环测试和软件回环测试,可以验证串口通信的正常性,并解决常见问题。
串口通信测试方法
1 关于串口通信的一些知识:
RS-232C是目前最常用的串行接口标准,用来实现计算机和计算机之间、计算机和外设之间的数据通信。
在PC机系统中都装有异步通信适配器,利用它可以实现异步串行通信。
而且MCS-51单片机本身具有一个全双工的串行接口,因此只要配以电平转换的驱动电路、隔离电路就可以组成一个简单可行的通信接口。
由于MCS-51单片机的输入和输出电平为TTL电平,而PC机配置的是RS-232C 标准串行接口,二者电气规范不一致,因此要完成PC机与单片机的数据通信,必须进行电平转换。
注明:3)RS-232C上传送的数字量采用负逻辑,且与地对称
逻辑1:-3 ~-15V
逻辑0:+3~+15V
所以与单片机连接时常常需要加入电平转换芯片:
2 实现串口通信的三个步骤:
(1)硬件连接
51单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,比如计算机的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换。
我们采用了三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。
电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。
使用MAX232串口通信电路图(9孔串口接头)
(2)串行通信程序设计
①通信协议的使用
通信协议是通信设备在通信前的约定。
单片机、计算机有了协议这种
约定,通信双方才能明白对方的意图,以进行下一步动作。
假定我们需要在PC 机与单片机之间进行通信,在设计过程中,有如下约定:
0x31:PC机发送0x31,单片机回送0x01,表示选择本单片机;
0x**:PC机发送0x**,单片机回送0x**,表示选择单片机后发送数据通信正常;
在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。
②串行通信程序设计主要有微机发送接收程序和单片机发送接收程序,微机上的发送和接收程序主要采用计算机高级语言编写,如C语言,因为了能够在计算机端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里利用如下图标的一个免费计算机串口调试软件,故而这一块计算机通信的程序可不写!
在单片机上主要用汇编或C编写,在使用串口之前,必须先对串口进行初始化,主要是设置产生波特率的定时器1、串口控制和中断控制。
具体步骤如下:
(1)确定定时器1的工作方式——编程TMOD寄存器(设置波特率);
(2)确定串口的控制——编程SCON;
(3)串口的中断方式,必须开CPU和源中断——编写IE寄存器;
(4)计算定时器1的初值——装载TH1,TL1;
(5)启动定时器1——编程TCON中的TR1位。
为何串行口的工作方式选择方式1,这是针对于我们平常最常用的,单纯一块板对应于我们的私人电脑,所以就无须考虑是哪一块板发来的信息,即无须分清是数据帧还是地址帧。
因为此时属于直通方式,所以无须考虑的。
方式1为波特率可变的10位异步通讯接口方式,发送或接收一帧信息,包括1个起始位0,8个数据位和一个停止位1,。
其中的起始位和停止位在发送时自动插入的。
输出:当单片机执行一条指令将数据写入发送缓冲SBUF且TI=0时,就启动发送。
串行数据从TXD引脚输出,发送完一帧数据后,就有硬件置位TI。
输入:在(REN)=1时,串行口采样RXD引脚,当采样到1到0的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。
在接收到附加的第9位数据后,当满足(1)RI=0(2)SM2=0或接收到的第9位数据为1时,第9位数据(停止位)才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI.否则信息丢失。
所以在方式1接收时,应先用软件清零RI和SM2标志。
通常串行接口以方式1工作时,SM2置为0.
而我们现实中需要的是一个机器中多块板进行显示和读取数据,所以这里不得不采取SM2=1的多机通信,而且我们一般采取的方式为方式3,TB8发送数据位,在模式2和3是要发送的第9位。
该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。
这里就可以根据地址判断出我们需要选取的板是不是方位监测板。
注明:如果用C语言来写的话,无论你是先发地址帧,然后数据帧,还是只发数
据帧,最后显示的都是一样的内容,而汇编语言是不行的。
SM2:多机通信控制位,仅用于方式2和方式3.
接收状态时,当串行口工作于方式2或3时,以及SM2=1时,只有当接收到的第九位数据为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接收到的数据丢弃。
而当SM2=0时,就不管接收到的第九位数据为多少,直接送入并申请中断,因为这个时候是直通方式。
注明:这里如果在SM2=1的时候,发来的是数据而不是地址,则不会发出中断请求,不会进入中断服务程序。
(就像我一直以为要判断数据是第一次发来的还是SM2=0后发来的,其实不需要)
如不需要 MOV A,SCON; ;判断是不是第二次中断后发来的数据
CJNE A,#90H,WAIT
发来的如果是数据,能够进入中断服务程序的一定是SM2清零后的数据。
方式2为固定波特率的11位UART方式,它比方式1增加了一位可程控为1或0的第9位数据。
输出:发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON 寄存器的TB8位,用软件置位或复位。
它可作为多机通信中地址、数据信息的标志位;也可以作为数据的奇偶校验位。
当单片机执行一条数据写入SUBF的指令且TI=0时,就启动发送器发送。
发送一帧信息后,置位中断标志TI,发送完一个之后,如果TI不清零的话,则会一直发送在发送缓冲器里的数据
JNB TI,$
CLR TI。
输入:在(REN)=1时,串行口采样RXD引脚,当采样到1到0的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。
在接收到附加的第9位数据后,当满足(1)RI=0(2)SM2=0或接收到的第9位数据为1时,第9位数据(地址位或者数据位)才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI,此时申请中断,进入中断服务程序.
RB8=1;标志此时是一个地址帧,SM2=1时,将地址转入SBUF,置位RI,发出中断请求,,若相符,则将从机的SM2清零,变成直通方式,准备接受其后传送来的数据。
RB8=0;数据帧,对SM2=1,RB8=0的从机接收到直接丢弃,而对SM2=0的从机,直通方式,不论RB8是0还是1,都将接受并将置位,发出中断请求。
注明:多机处理通信方式,首先保证每一台从机在系统中的编号是唯一
的。
系统初始化时,将所有从机中的SM2均置1,并处于允许串行口中断接收状态。
主机欲与某从机通信时,先向所有从机发出从机的地址,然后才接着发命令或者数据。
在主机发地址时,置第9位数据(TB8为1),表示主机发送的是地址帧,然后才将第9位数据(TB8)清0,发送命令或数据。
3 观察结果:
下面列举一个使用的串口通信测试软件,其功能为,将PC机键盘的输入发送给单片机,单片机收到PC机发来的数据后,回送同一数据给PC机,并在屏幕上显示出来,只要两者相同,则说明两者之间的通信正常。
在PC上打开软件串口调试器.exe,设置端口号COM1,波特率4800,数据位8,停止位1,打开串口,并勾选发送区的“十六进制”与接收区的“十六进制”。
发送数据时根据通信协议将一帧通信数据划分为地址码和功能数据码。
要完成一帧通信数据的发送,要在串口调试器.exe分先后两次发送实现。
首先发送地址,如图2所示操作:
图2
接下来,发送功能数据码操作如图3所示:
图3
注:在切换发送地址码和功能数据码时,都要先关闭串口,再设置校验位,要发送时再打开串口。
还有就是不同版本的串口调试器,可能在发送数据功能码时是否加空格分开有一定的区别。
4通信故障分析过程
如果串口通信不行的话,按以下步骤进行检查:
①将MAX232芯片翘起来,将MAX232的7脚和8脚用镊子短路,则在串口调试器上自动发送一个数值,则应回显同样的一个数值,如果可回显,则表示电脑的串口是可以正常通信了,如果不行,则代表电脑的串口不行,重新更换电脑;
②如果电脑的串口可以的话,则查看MAX232是否正常,则拿镊子将单片机的第10脚和第11脚短路,则串口同样可以自动收发数据,如果不行的话,则为MAX232芯片有问题:
先更换芯片;
如果芯片正常,则查看外围的极性电容是否正常焊接,一般不正常焊接极性电容也会出现以上问题;
③如果以上检查都正常,出现串口通信没有回送数值,则代表单片机工作不正常:
先检查单片机的电源电压是否正常供电;
如果正常供电,则判断单片机是否程序成功烧入,重新对单片机进行烧写程序,查看是否之后还可以进行串口通信;
在重新烧写过程序的单片机后串口通信还不行的话,则检查单片机的外围电路,查看复位开关是否焊接错误,导致常通状态;
如果检查开关是正常焊接,如果有复位芯片,则更换好的复位芯片,看是否串口通信是否正常。
(注:文档可能无法思考全面,请浏览后下载,供参考。
)。