搜档网
当前位置:搜档网 › 亚控 串口数据发送SendDataToCom使用说明

亚控 串口数据发送SendDataToCom使用说明

亚控 串口数据发送SendDataToCom使用说明
亚控 串口数据发送SendDataToCom使用说明

亚控 串口数据发送SendDataToCom 使用说明 概述

1、组态王支持与亚控串口数据发送SendDataToCom 通过串口RS-232进行通讯。

2、请用亚控提供的driverSetup.exe 工具安装本驱动,路径为:「开始」菜单\程序\组态王××\工具\安装新驱动。对于

组态王的最新版本和OEM 版本,本工具可能不支持。如果遇到此种情况,请到亚控的网站下载最新的driverSetup.exe 工具,或和亚控公司技术部联系。

3、本驱动适用设备:北京亚控公司串口数据发送。

组态王设置 1、定义组态王设备

组态王定义设备时请选择:智能模块->北京亚控->串口数据发送->串口 2、地址设置和通讯参数设置

组态王的设备地址设置:默认地址为1

组态王通讯参数:应与下位设备的通讯参数设置保持一致。

3、组态王数据词典--变量定义

注意:

1)、寄存器字符串范围不能超过128个字符

2)、写: 将写的内容追加在缓冲区的末尾,如果缓冲区已经满,则丢弃时间最早的数据。必须保证字符的个数是偶数。 3)、读:

<1>如果缓冲区没有数据,则从串口读取数据。 <2>如果缓冲区中数据少于127则全部取出。

设置项 推荐值 波特率: 9600 数据位长度 8 停止位长度 1 奇偶校验位

偶校验

寄存器名称 变量类型 数据类型 读写属性 寄存器说明 WDATA I/0字符串String 只写将字符串从COMx 发送

WHDATA I/0字符串String 只写将ASCII 串转换成16进制数据,从COMx 发送RDATA I/0字符串String 只读从COMx 读ASCII 字符串

RHDATA

I/0字符串,I/0整型

String|USHORT

只读

从COMx 读的16进制数据,转换成字符串

<3>从缓冲区取数据,如果缓冲区数据大于127,则只取127, 剩余数据仍然在缓冲区中。 4)、读和写的缓冲区是分离的。

5)、注意不要使RDATA ,WDATA 寄存器发生争夺数据的情况, 在一般情况下,一个应用中只使用其中一个寄存器。 6)、硬件设备使用说明

参见…

组态王支持的硬件设备及其协议列表 添加一个新的I/O 设备 I/O 设备管理

计算机

设备 2 3 3 2 5

5

KEIL中如何用虚拟串口调试串口程序

KEIL中如何用虚拟串口调试串口程序 发表于2008/5/7 15:30:22 以前没接触过串口,一直都以为串口很复杂。最近在做一个新项目,用单片机控制GSM模块。单片机和GSM模块接口就是串口。调试完后觉得串口其实很简单。“不过如此”。这可能是工程师做完一个项目后的共同心态吧。下面详细介绍下如何用虚拟串口调试串口发送接收程序。 需要用到三个软件:KEIL,VSPD XP5(virtual serial ports driver xp5.1虚拟串口软件),串口调试助手。 1、首先在KEIL里编译写好的程序。 2、打开VSPD,界面如下图所示: 左边栏最上面的是电脑自带的物理串口。点右边的add pair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。 3、接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL 绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入MODE COM3 4800,0,8,1(设置串口3的波特率、奇偶校验位、数据位、停止位,打开COM3串口,注意设置的波特率和程序里设置的波特率应该一样)ASSIGN COM3 SOUT(把单片机的串口和COM3绑定到一起。因为我用的单片机是AT892051,只有一个串口,所以用SIN,SOUT,如果单片机有几个串口,可以选择S0IN,S0OUT,S1IN,S1OUT。)

4、打开串口调试助手 可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率4800,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。 现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。这种方法的好处是不用硬件就可以调试。这是网上一篇文章介绍的方法,联系我实际的使用做了整理。有用的着的人就不用继续摸索了

串口调试助手使用方法

串口调试助手使用方法 你可以试试串口监控器,一个功能强大,非常易用的软件。 串口监控器是一个免费的多功能串口通讯监控软件,它能够多种方式显示,接收,分析通讯数据;能够以多种灵活方式发送数据;功能强大,操作简便,在串口通讯监控,设备通讯测试中,能够有效提高工作效率。 主要功能如下: 接收数据: 1. 以十六进制方式显示接收到的数据。 2. 以字符方式显示接收到的数据。 3. 数据帧自动识别,分行显示。 4. 接收数据自动换行设置。 5. 显示或隐藏数据帧的接收时间。 6. 自动清除,自动保存接收到的数据。 7. 接收数据个数计数。 发送数据: 1. 十六进制方式发送数据。 2. 字符串方式发送数据。 3. 发送“发报窗口”当前光标行的数据帧。 4. 循环发送“发报窗口”当前光标行的数据帧。 5. 循环发送“发报窗口”固定行的数据帧。 6. 循环依次发送“发报窗口”的多行数据帧。(设置起始行,行数) 7. 触发发送,接收到“发报窗口”某一行数据,触发发送“发报窗口”另一行数据。 8. 发送数据个数计数。 实用增强功能: 1. 强大易用的进制转换功能。 2. 智能识别当前光标处数据帧的行号,“字符”或“十六进制数”的个数。 3. 智能计算当前选择的“字符”或“十六进制数”的个数。 4. 强大的数据查找功能。 5. 定时保存,定时清除数据。 6. 根据自己的喜好,灵活变换操作界面。

应用场合: 1. 截取和分析设备之间通讯数据流。 2. 串行外围设备硬件开发。 3. 串行设备驱动程序开发。 4. 调试和测试设备和设备之间的串行通讯过程。 5. 记录和分析RS232/422/485通信过程。 6. 模拟某设备通讯过程,对另外设备进行通讯测试。

单片机串口发送数据帧_0

单片机串口发送数据帧 很少看到有资料写如何以中断的方式发送一帧数据,如果以等待的发送数据帧,对高速运行的单片机来说是很浪费时间的,下面就介绍一种使用中断方式发送数据帧,操作平台采用51 mcu 首先定义一个数据帧的结构体,该结构体可以做为一个全局变量,所有的发送都要经过这个结构体: //结构体 struct { char busy_falg;//忙标志,若在发送数据时置位1,即在开始发送置位1,发送结束置位0 int index;//索引,指向需要发送数组的位置 int length;//整个数据帧的长度 char *buf;//指向需要发送的数据帧,建议为全局变量,否则一旦开始发送,必须等到发送结束,即判断busy_falg 为0 } send_buf; 发送数据的函数,这里有个缺点,就是还是要使用while 来检测串口是否忙碌,不过这样比占用系统时间来发送要好的多了:

//发送一帧 void SendBuf(char *buf,int length) { while(busy_falg);//查询发送是否忙,否则循环等待 send_buf.length = length; send_buf.index = 0; send_buf.buf = buf; send_buf.busy_falg = 1; SBUF = send_buf.buf[0];//写入SBUF,开始发送,后面就自动进入中断发送 } 串口中断发送函数,注意设置空闲标志位,避免多任务时多个发送帧调用了同一个结构体: void SerialInt() interrupt 4 //串口中断 { if(RI == 1)//串口接收 { RI = 0; } else if(TI == 1)//串口发送 { TI = 0;

串口调试助手使用规范V15.01(试用)

串口调试助手使用规范(试用) ——截取指令方法
版本:V15.01 日期:2015.0128 类别:APP 使用规范
1
串口调试助手使用规范(试用) 截取指令方法
广州市英沙电子系统有限公司 2015-01-28 发布

串口调试助手使用规范(试用) ——截取指令方法
版本:V15.01 日期:2015.0128 类别:APP 使用规范
2
目 录
1 引言 ................................................................................................................................................................................... 3 2 使用前准备........................................................................................................................................................................ 3 3 串口调试助手及其安装 ................................................................................................................................................... 3 4 串口线与设备的物理连接 ............................................................................................................................................... 4 5 串口调试助手截取指令步骤 ............................................................................................................................................ 4 6 分析截取的指令............................................................................................................................................................... 6?

串口调试助手使用说明概要

串口调试助手使用说明 为简单明了,有些不言自明的功能不作介绍。 1 串口调试助手 1.1 设置串口参数: 串口号:1-16 波特率:600-256000,>115200 时需要硬件支持。 2 接收区/键盘发送区 2.1 接收数据 a 设置串口参数 b 如果要按十六进制形式显示接收数据,将十六进制显示选项选中。 c 点击打开/关闭串口区中的打开串口按钮。 2.2 显示接收数据的长度 因某些限制,显示接收数据的文本不能太长,所以当显示文本长度快达到 62K 时会自动将显示文本删减到 32K,此时文本可保留 32K 的字符或约 10K 的十六进制数据显示。 2.3 在键盘上发送英文字符 a在接收区/键盘发送区的输入框中用鼠标点一下。 b在键盘按下按键立刻发送。 在这里不能发送回车换行,也不能发送汉字,若要发送请在单字符串发送区发送。 3 发送数据 可以发送单字符串,多字符串(字符串序列或直接在键盘上发送英文字符。有两种发送数据格式,一种是普通的字符串,另外一种是十六进制数据即 HEX 格式数据。发送 HEX 格式数据时要在字符串输入区中输入 HEX 格式字符串,并且要将相应区内的十六进制发送选项选中。 例:HEX 格式数据字符串12 34 AB CD FF

3.1 单字符串发送区 3.1.1自动发送,自动发送周期: 此项功能可以每隔一段时间反复地自动发送输入框中的数据,点击自动发送按钮后即启动自动发送功能。 自动发送周期最大为 65535mS。 3.2 多字符串发送区 在多字符串发送区可以发送一个字符串,或者自动地、依次发送所有的字符串。 请把鼠标移到“接收区/键盘发送区”和“多字符串发送区”之间,当鼠标形状发生变化时按下鼠标器的左键不松开,然后移动鼠标,将“多字符串发送区”的宽度调宽一些,让“间隔时间”显露出来。 3.2.1发送一个字符串 a 输入字符串。 b 如果要发送 16 进制数据, 要先在字符串后的 HEX 选项框中打上对勾。 c 点击发送按钮。发送后,按钮上的数字作为当前字符串序号保存起来,此序号在自动循环发送中要用到它。 3.2.2 发送多个字符串(字符串序列 a 输入多个字符串。 b 如果要发送 16 进制数据, 将相应的 HEX 选项打上对勾。 c 输入间隔时间,最大为 65535mS。 d 点击自动循环发送按钮。 延时时间到达后发送当前字符串( 见3.2.1的步骤 c 的下一个字符串,间隔一段时间后再发送下一个。发送完毕自动从头开始继续发送。 4 打开/关闭串口区 下载后打开串口选项:选中这选项后,每次下载后会自动打开调试助手指定的串口,接收应用程序发送的数据。

串口调试助手VC++6.0程序

串口调试助手源程序 及编程详细过程 作者:龚建伟 2001.6.20 可以任意转载,但必须注明作者和说明来自https://www.sodocs.net/doc/df12648364.html,,不得作为商用 目次: 1.建立项目 2.在项目中插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量 4.在对话框中添加控件 5.添加串口事件消息处理函数OnComm() 6.打开和设置串口参数 7.发送数据 在众多网友的支持下,串口调试助手从2001年5月21日发布至今,短短一个月,在全国各地累计下载量近5000人次,在近200多个电子邮件中,20多人提供了使用测试意见,更有50多位朋友提出要串口调试助手的源代码,为了答谢谢朋友们的支持,公开推出我最初用VC控件MSComm编写串口通信程序的源代码,并写出详细的编程过程,姑且叫串口调试助手源程序V1.0或VC串口通讯源程序吧,我相信,如果你用VC编程,那么有了这个代码,就可以轻而易举地完成串口编程任务了。(也许本文过于详细,高手就不用看) 开始吧: 1.建立项目:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致,等会你会方便一点); 2.在项目中插入MSComm控件选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框中。选择Microsoft Communications Control, version 6.0,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。(如果你在控件列表中看不到Microsoft Communications Control, version 6.0,

串口调试软件使用说明2.0

串口调试软件使用说明 首先,运行该软件显示的是一个对话窗。在该界面的左上角有五个小的下拉窗口,分别为串口,波特率,校验位,数据位,停止位。 串口窗口应为仪表与计算机相连时所使用的串口。 波特率窗口选择仪表设置的波特率。校验位选择无。 数据位选择8位 停止位选择2位 在停止位的下面是显示区的选项,选择十六进制显示。 在整个界面的下方是发送区,主要选择十六进制发送,发送方式可选手动发送或自动发送。其中自动发送可设置发送周期(以毫秒为单位)。除直接发送代码外本软件也可直接发送文件。 仪表通讯协议如下: 通讯格式为8位数据,2个停止位,无校验位。 仪表读写方式如下: 读指令:Addr+80H Addr+80H 52H 要读参数的代号 写指令:Addr+80H Addr+80H 43H 要写参数的代号写入数低字节写入数高字节 读指令的CRC校验码为:52H+Addr 要读参数的代号,Addr为仪表地址参数值范围是0-100。 写指令的CRC校验码为:43H+要写的参数值+Addr 要写的参数代号。 无论是读还是写,仪表都返回以下数据: 测量值PV+给定值SV +输出值MV及报警状态+所读/写参数值 其中PV、SV及所读参数值均为整数格式,各占2个字节,MV占1个字节,报警状态占1个字节,共8个字节。 每2个8位数据代表一个16位整形数,低位字节在前,高位字节在后,各温度值采用补码表示,热电偶或热 电阻输入时其单位都是0.1℃,1V或0V等线性输入时,单位都是线性最小单位。因为传递的是16位二进制 数,所以无法表示小数点,要求用户在上位机处理。 上位机每向仪表发一个指令,仪表在0-0.2秒内作出应答,并返回一个数据,上位机也必须等仪表返回数 据后,才能发新的指令,否则将引起错误。如果仪表超过最大响应时间仍没有应答,则原因可能无效指 令、通讯线路故障,仪表没有开机,通讯地址不合等,此时上位机应重发指令。

串口通讯-单片机向电脑发送数据

#include unsigned char data1[]={"have a nice day!"}; //这是要发送的数据,它将 //显示在电脑的串口调试助手上 bit sent_over; //定义一个本次字符是否已经发送完毕的标志位 void serial_timer1_init() //串口及定时器1的初始化函数 { SCON=0x40; //串口工作方式1,只发送不接收数据 PCON=0x00; //不倍增 ES=1; //开串口中断 EA=1; //开总中断 TMOD=0x20; //定时器工作方式2,8位自动重装 TH1=0xfd; //初值为0xfd,波特率9600 TL1=0xfd; TR1=1; //开定时器1 } void serial_ISR() interrupt 4 //串口中断服务例程,每发送完一个字符 { //就会中断一次 TI=0; //TI=0,为下一次发送字符数据作准备 sent_over=1; //本次字符已经发送完毕,标志位置1 } //使下一次发送字符能够进行 void main() { serial_timer1_init(); sent_over=1; //置为1,使第一次发送字符能够进行 while(1) { static unsigned char i=0; //定义一个静态局部变量,便于在data1中取出字符 if(sent_over==1) //如果为1,说明本次字符已经发送完毕,可以进行 { //下个字符发送了 SBUF=data1[i]; //发送字符 sent_over=0; //清0,等字符发送完毕,在中断里再重新置1 if(data1[i]!='\0') //如果整个字符数组还没发送完,就继续发送 i++; else while(1); //如果整个字符数组发送完了,就使单片机停下来} } }

大傻串口调试软件2.0 使用手册

ComMonitor大傻串口调试软件 使用说明书 (2.0) 编写:大傻 Email: david_parkins@https://www.sodocs.net/doc/df12648364.html, 大傻工作室 二零零六年三月

目录 一、介绍 (2) 二、软件界面 (3) 2.1 软件主界面 (3) 2.2 最大化界面 (4) 2.3窗口置顶 (4) 2.4关于程序 (5) 三、显示区控制 (7) 3.1显示发送 (7) 3.2帧换行 (7) 3.3显示保存发送和接收时间 (8) 3.4关键字过滤 (9) 3.5 保存显示区内容 (9) 四、发送区数据发送控制 (11) 4.1 发送区数据格式说明 (11) 4.2手动控制 (11) 4.3自动发送 (12) 4.4 校验码计算 (12) 五、轮发功能 (14) 5.1 发送区轮发 (14) 5.2文件轮发 (14) 5.3定时轮发 (16) 5.4 帧回应轮发 (17) 六、常见问题索引 (19) 6.1 串口不能打开 (19) 6.2 接收到的数据不对 (19) 6.3 接收区没有显示 (19) 6.4 自动发送为什么没有发送数据 (19) 6.5 谁是大傻 (19) 6.6 如何联系大傻 (19) 6.7 如何获得最新的ComMonitor软件 (19) 6.8 关于ComMonitor软件源代码 (20)

一、介绍 ComMonitor是大傻两年前写的一个软件,当初由于工作的原因,常常需要调试串口通讯,又没有找到合适的串口调试软件,就在两年前的十一放假期间自己写了一个。之后一直都是自己和同事使用。后来很多同事反映很好用,建议我放到网上共享。再后来又根据同事和网友的建议,进行了一些修改,就形成了今天的版本。 ComMonitor追求的是方便易用,能调试大多数的串口通讯应用。所以,在界面上都没有做什么处理。当初写这个软件的时候,参考了串口调试助手,但又根据自己工作中的需求,添加了更多的功能。具体来讲,它除了具备一般的串口调试工具的功能以外,还具有以下特别之处: 1、支持多达20个串口,对于使用多串口卡或虚拟串口的用户是很必要的; 2、加入了接收显示与保存的关键字过滤功能; 3、具备接收显示与保存时帧换行功能,40ms未受到数据,认为一帧结束; 4、具有记录发送和接收时间的功能; 5、支持3个独立的发送区; 6、3个发送区可以以定时或响应等两种方式进行轮发; 7、具有计算CRC16、CRC8等校验码的功能; 8、自动保存上一次使用的端口配置; 9、自动保存上一次发送区的数据; 10、具有文件按行发送轮发功能,发送方式也可以采用定时和响应两种方式; 11、轮发响应方式中,加入了超时判断,和自定义多次重发功能; 12、所有参数和数据支持运行时改变,不需要重新启动; ComMonitor设计伊始就是针对调试串口设备通讯的。所以,上面的很多特点为调试各种带串口通讯的智能设备提供了极大的方便。ComMonitor也可以用来模拟带串口通讯的智能设备,与您的上位机监控系统进行通讯。ComMonitor 虽然还只是一个小的工具软件,但他是大傻工作经验、一些想法和辛勤劳动的结晶。希望能给大家的工作带来方便。如果您对ComMonitor有什么建议,也请不吝赐教。 在ComMonitor以后的版本中,大傻还打算做一些升级,包括提供一些更实用的功能,界面美化等等。为了保证大家能及时拿到最新版的ComMonitor软件,请大家发email给大傻告诉大傻你的email。

stm32,DMA采集一个AD数据,并通过DMA向串口发送

#include #include "ADC1.h" #include "DMA1.h" #include "USART1.h" #include "time.h" #include "stdio.h" extern uint32_t SendBuff; float ADC_Received; uint32_t ADC_Received1; uint8_t ADC_Received2[11]; //printf函数重新定向,方便在程序中使用 int fputc(int ch, FILE *f) { USART_SendData(USART1, (unsigned char) ch); while (!(USART1->SR & USART_FLAG_TXE)); return (ch); } void usart_putchar(uint8_t ch) { USART_SendData(USART1,ch); while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET); } int main() { ADC1_Config(); DMA_Config(); USART1_Config(); while(1) { // ADC_Received = (float)ADC_GetConversionV alue(ADC1)*3.3/4069; // ADC_Received1 = ADC_Received * 1000000000; ADC_Received = (float)SendBuff*3.3/4069; ADC_Received1 = ADC_Received * 1000000000; ADC_Received2[0]=(ADC_Received1/1000000000 + 0x30); //usart_putchar(0x2e);

串口调试助手3_用户手册

串口调试助手3.0版 使用说明书

目录 串口调试助手3.0版 (1) 使用说明书 (1) 串口调试助手3.0版简介 (1) 安装串口调试助手3.0版 (2) 使用频道列表 (3) 使用A频道 (4) 使用B频道 (5) 使用C频道 (6) 使用D频道 ............................................................ 错误!未定义书签。

软件使用说明书串口调试助手3.0版简介 串口调试助手3.0版是WMD工 作室最新研发的智能调试工具, 是不折不扣的“串口助手”。 串口调试助手3.0版可以实现的功 能包括发送接受16进制数、字符 串、传输文件、搜索出空闲串口 等,此外,还可以搜索用户自定义设置其他的项目。 为了让大家更好的使用串口调试助手3.0版将提供自动更新功能,用于免费升级软件以及修正bug.。 1

软件使用说明书 安装串口调试助手3.0版 安装串口调试助手需要Windows 2000/XP/2003/Vista操作系统中 的任一种,Windows NT 4.0 下面 没有测试过,不保证可运行。 串口调试助手为绿色软件,下载 后只需要复制到硬盘上的指定目录中即安装完成。 因为要到网络上加查更新,如果您的计算机的安 全防护软件提示,该程序需要访问网络的时候, 建议选择“允许”访问。 2

软件使用说明书使用列表 软件安装完成后,直接双击“串口调试助手3.0”即可运行软件。 检查串口线是否连接到计算机和设备 上。如果2端都是本计算机上的串口, 一定确认串口调试助手打开的是您指 定的串口。 3

使用串口UART0接收上位机发送的数据

/****************************************Copyright (c)************************************************** ** Guangzou ZLG-MCU Development Co.,LTD. ** graduate school ** https://www.sodocs.net/doc/df12648364.html, ** **--------------File Info------------------------------------------------------------------------------- ** File name: main.c ** Last modified Date: 2004-09-16 ** Last Version: 1.0 ** Descriptions: The main() function example template ** **------------------------------------------------------------------------------------------------------ ** Created by: Chenmingji ** Created date: 2004-09-16 ** Version: 1.0 ** Descriptions: The original version ** **------------------------------------------------------------------------------------------------------ ** Modified by: ** Modified date: ** Version: ** Descriptions: ** ***************************************************************** ***************************************/ /**************************************************************** ************ * 文件名:main.C * 功能:使用串口UART0接收上位机发送的数据,并将数据原封不动地发送回上位机。 * 说明:通讯波特率115200,8位数据位,1位停止位,无奇偶校验。 ***************************************************************** ***********/

单片机串口通信的发送与接收

51单片机的串口,是个全双工的串口,发送数据的同时,还可以接收数据。 当串行发送完毕后,将在标志位TI 置1,同样,当收到了数据后,也会在RI 置1。 无论RI 或TI 出现了1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。在中断程序中,要区分出来究竟是发送引起的中断,还是接收引起的中断,然后分别进行处理。 看到过一些书籍和文章,在串口收、发数据的处理方法上,很多人都有不妥之处。 接收数据时,基本上都是使用“中断方式”,这是正确合理的。 即:每当收到一个新数据,就在中断函数中,把RI 清零,并用一个变量,通知主函数,收到了新数据。 发送数据时,很多的程序都是使用的“查询方式”,就是执行while(TI ==0); 这样的语句来等待发送完毕。 这时,处理不好的话,就可能带来问题。 看了一些网友编写的程序,发现有如下几条容易出错: 1.有人在发送数据之前,先关闭了串口中断!等待发送完毕后,再打开串口中断。 这样,在发送数据的等待期间内,如果收到了数据,将不能进入中断函数,也就不会保存的这个新收到的数据。 这种处理方法,就会遗漏收到的数据。 2.有人在发送数据之前,并没有关闭串口中断,当TI = 1 时,是可以进入中断程序的。但是,却在中断函数中,将TI 清零! 这样,在主函数中的while(TI ==0);,将永远等不到发送结束的标志。 3.还有人在中断程序中,并没有区分中断的来源,反而让发送引起的中断,执行了接收中断的程序。 对此,做而论道发表自己常用的方法: 接收数据时,使用“中断方式”,清除RI 后,用一个变量通知主函数,收到新数据。 发送数据时,也用“中断方式”,清除TI 后,用另一个变量通知主函数,数据发送完毕。 这样一来,收、发两者基本一致,编写程序也很规范、易懂。 更重要的是,主函数中,不用在那儿死等发送完毕,可以有更多的时间查看其它的标志。 实例: 求一个PC与单片机串口通信的程序,要求如下: 1、如果在电脑上发送以$开始的字符串,则将整个字符串原样返回(字符串长度不是固定的)。 2、如果接收到1,则将P10置高电平,接收到0,P10置低电平。(用来控制一个LED)单片机是STC89C52RC/晶振11.0592/波特率要求是9600或4800。谢谢!

串口调试助手C++开发

1.建立项目: 打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致,等会你会方便一点); 2.在项目中插入MSComm控件 选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX 控件出现在列表框中。选择Microsoft Communications Control, version 6.0,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。(如果你在控件列表中看不到Microsoft Communications Control, version 6.0,那可能是你在安装VC6时没有把ActiveX一项选上,重新安装VC6,选上ActiveX就可以了),这时在ClassView视窗中就可以看到CMSComm类了,(注意:此类在ClassWizard中看不到,重构clw文件也一样),并且在控件工具栏Controls中出现了电话图标(如图1所示),现在要做的是用鼠标将此图标拖到对话框中,程序运行后,这个图标是看不到的。

3.利用ClassWizard定义CMSComm类控制对象 打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg类,为IDC_MSCOMM1添加控制变量:m_ctrlComm,这时你可以看一看,在对话框头文件中自动加入了//{{AFX_INCLUDES() #include "mscomm.h" //}}AFX_INCLUDES (这时运行程序,如果有错,那就再从头开始)。 4.在对话框中添加控件 向主对话框中添加两个编辑框,一个用于接收显示数据ID为IDC_EDIT_RXDATA,另一个用于输入发送数据,ID为IDC_EDIT_TXDATA,再添加一个按钮,功能是按一次就把发送编辑框中的内容发送一次,将其ID设为IDC_BUTTON_MANUALSEND。别忘记了将接收编辑框的Properties->Styles中把Miltiline和Vertical Scroll属性选上,发送编辑框若你想输入多行文字,也可选上Miltiline。 再打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg 类,为IDC_EDIT_RXDATA添加CString变量m_strRXData,为

红外接收并通过串口发送数据至电脑

/** ************************************************************************* * [url=home.php?mod=space&uid=288409]@file[/url] main.c * [url=home.php?mod=space&uid=187600]@author[/url] xr * [url=home.php?mod=space&uid=212281]@date[/url] 2014年3月31日22:30:08 * [url=home.php?mod=space&uid=895143]@version[/url] V1.2.3 * [url=home.php?mod=space&uid=247401]@brief[/url] 串口通信+红外通信通过串口发送红外遥控器的解码值到PC * [url=home.php?mod=space&uid=536309]@NOTE[/url] 单片机STC89C52RC MCU 晶振11.0592MHZ ************************************************************************* */ #include void ConfigUart(); void UartSend(unsigned char dat); void delayms(unsigned int xms); extern bit irflag; extern unsigned char ircode[4]; extern void ConfigInfrared(); void main() { ConfigUart(); ConfigInfrared(); while (1) { if (irflag) //接收到红外数据 { irflag = 0; UartSend(ircode[0]); //发送用户码 delayms(100);//延时100ms UartSend(ircode[2]); //发送键码 } } } /** * @brief 延时xms * @param xms * @retval 无 */

关于串口助手调试屏的基本使用方法

一、找到屏连接的串口 打开电脑的设备管理器,并找到其中的串口。并找到哪个是与我们串口屏连接的串口号。 比如我们公司配套的串口小板使用的是,CP2102的USB转串口芯片。正常安装驱动可以看到如下图所示:那么我这里的串口号就是COM4 说明1,如何打开设备管理器。可以百度” 何打开设备管理器”,或打开本参考链接。 说明2,如何安装串口驱动。可以下载,驱动精灵,鲁大师等工具。 说明3,如果你的电脑没有任何串口。运行该串口软件可能会发生错误。 二、串口助手基本操作 1.串口配置 1.1,根据从步骤一中得到的串口号,选择我们与屏连接的串口号。 1.2,选择与串口屏同行的波特率。 1.3,数据位8,1停止位,无校验(通用默认配置) 1.4,参数设置好后,点击打开串口。

2.串口收发数据 2.1,发送指令内容(ascii字符串)。 2.1.1,点击去掉“HEX发送”。 2.1.2,点击去掉“发送新行” 2.1.3,输入需要发送的命令内容。比如“page 0”。 2.1.4,点击发送按钮。 2.2,发送指令结束符(hex数据的三个0xFF)。 2.2.1,点击勾选“HEX发送”。 2.2.2,输入需要发送的结束符,三个十六进制的FF 注意:每个“FF”不需要增加“0x“前缀。每两个“FF”之间需要一个空格 2.2.3,点击发送按钮。 到此,一条完整的指令就发送到串口屏了。

2.3,以ASCII字符串方式查看接收数据 勾选取消上图中2位置所示的“HEX显示”。这样串口屏发送出来的所有数据都会以字符串的方式在窗口1区域中显示出来。 注意:如上图3区域所示,可能会看到一些乱码字符出现。这是因为,串口屏的一些返回值不是有效的ASCII字符,或者汉字字符。

测试电脑的串口是否是好的 最完整最可靠的方法 就是 连接一个真实 的串口通信线路

测试电脑的串口是否是好的最完整最可靠的方法就是连接一个真实的串口通信线路,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位数字。 3、其余设置按照下图。

串口调试步骤

【转】JCBus串口调试助手简明教程 2009-03-04 20:33 JCBus串口调试助手是最为您着想的串口调试助手: -自动添加 CRC-16校验码 -按需存储 8条调试消息,软件关闭后自动存储 -收发对应且时间戳精确到1毫秒,易于查找 -突出显示设备返回消息的数据部分(JCBus或部分Modbus协议) -灵活解析各种数据类型 -精确查找所有可用串口,并支持USB虚拟串口 -在线设置串口名称、波特率、奇偶校验、数据位、停止位等 -智能收发多种格式,可以手动/有限次/无限次自动发送/自动接收,发送间隔长达596小时 -全面支持 Windows98、2000、XP、Vista等多种操作系统 衷心希望她能成为您工作与学习中的好帮手。以下请阅读其简明教程: 1. 双击运行软件 如果出错,请先安装Microsoft .NET Framework 2.0,即微软.NET 2.0虚拟机。 第一次运行时,请先阅读使用协议,并单击“我同意”。如图1.1所示。

图1.1 第一次运行时请阅读使用协议,单击“我同意” 图1.2 JCBus串口调试助手的工作区域 随后,可以看到如图1.2所示的软件工作区域: 1.1 标题栏:显示为“JCBus串口调试助手” 1.2 菜单栏:包括“文件”、“帮助”等菜单项目 1.3 串口参数设置区:用于设置串口名称、波特率、校验位、数据位和停止 位等 1.4 调试结果解析区:用于解析调试过程中的数据,使数据在16进制、10 进制等之间转换。 1.5 调试区:分“消息应答”和“自动接收”两种调试方式。 A. “消息应答”:软件向设备发送一条消息后接收设备回应的信 息; B. “自动接收”:软件只负责接收设备发送的消息并在界面上显 示出来。 两种方式可以通过点击“消息应答”或者“自动接收”标签页来切换。 1.6 显示区:处于调试区的中间位置 1.7 调试操作区:记录“消息应答”方式的详细调试操作

Keil串口调试技巧

1楼主:有关Keil软件仿真的串口调试技巧 贴子发表于:2008/10/29 8:43:55 引言 在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。 在单片机编程中,串口占了很重要的地位。传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。使用硬件仿真器的确是很有效的方法,但是也有一些缺点: 很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。 对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。 有时由于设备内部结构空间的限制,仿真头不方便接入。 有的仿真器属于简单的在线仿真型,仿真时有很多限制。例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。 1 调试前的准备工作 下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。所需的只是: ①硬件。1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系如图1所示)。 ②串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。如果没有合适的串口调试软件,则可使用笔者编写的一个免费的串口小工具TurboCom。除了与其他软件一样的数据收发功能外,它还有定时轮流发送自定义数据帧和自动应答(接收到指定数据帧后,自动返回相应的数据帧)这两个很有用的功能,特别适合于老化测试。这个小工具可以从https://www.sodocs.net/doc/df12648364.html,下载。 2 基本调试命令介绍 这个串口调试方法主要是利用了Keil强大的软件仿真功能。在新版本(高于6.0)的Keil软件中,增强了软件的仿真能力,可以利用软件仿真更多的单片机功能。在这些功能中,其中有一个很重要的功能就是利用计算机的串口来模拟单片机的串口(这不同于很多软件在仿真时使用的激励文件方式,可以直接与其他串口进行通信,更加方便、灵活)。首先要介绍仿真时需要使用的两个命令:ASSIGN和MODE。 2.1 ASSIGN命令

相关主题