当前位置:文档之家› 笔记本蓝牙转串口教程

笔记本蓝牙转串口教程

笔记本蓝牙转串口教程
笔记本蓝牙转串口教程

笔记本蓝牙转串口教程

说明:在做单片机开发时需要用到蓝牙,但是我在windows下并没有找到蓝牙程序的开发,想到用蓝牙转串口来解决这个问题。这样就可以使用串口调试工具了

第一步:

先安装蓝牙驱动程序及软件,系统自带的驱动不能解决我们的问题

可以用驱动精灵来安装,装好后会出现上面的Broadcom ** 第二步:

启动蓝牙控制软件(又驱动精灵安装的)

第三步:

打开划线部分

进入下面界面

点击添加按钮

然后就创建成功了

第四步:修改串口号

使用串口

串口通信测试方法

串口通信测试方法 LELE was finally revised on the morning of December 16, 2020

串口通信测试方法 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软件进行观察,这里利用如下图标的一个免费计算机串口调试软件,故而这一块计算机通信的程序可不写!

VB串口通信(附图教程)

界面如下: 代码如下: Private Sub Form_Load() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False Else End If Combo1.AddItem "COM1" Combo1.AddItem "COM2" Combo1.AddItem "COM3" Combo1.AddItem "COM4" Combo1.AddItem "COM5" Combo1.AddItem "COM6" Combo1.AddItem "COM7" Combo1.AddItem "COM8" Combo1.AddItem "COM9" Combo1.AddItem "COM10"

Combo1.AddItem "COM11" Combo1.AddItem "COM12" Combo1.AddItem "COM13" Combo1.AddItem "COM14" Combo1.AddItem "COM15" Combo1.AddItem "COM16" Combo1.ListIndex = 2 Combo2.AddItem "256000" Combo2.AddItem "128000" Combo2.AddItem "115200" Combo2.AddItem "57600" Combo2.AddItem "38400" Combo2.AddItem "28800" Combo2.AddItem "19200" Combo2.AddItem "14400" Combo2.AddItem "12800" Combo2.AddItem "11520" Combo2.AddItem "9600" Combo2.AddItem "4800" Combo2.AddItem "2400" Combo2.AddItem "1200" Combo2.AddItem "600" Combo3.AddItem "无None" Combo3.AddItem "奇Odd" Combo3.AddItem "偶Even" Combo4.AddItem "4" Combo4.AddItem "5" Combo4.AddItem "6" Combo4.AddItem "7" Combo4.AddItem "8" Combo5.AddItem "1" Combo5.AddItem "2" https://www.doczj.com/doc/226888911.html,mPort = Combo1.ListIndex + 1 MSComm1.Settings = "9600,n,8,1"

WIN_API串口通信详细讲解带范例程序说明

WIN32 API串口通讯实例教程 第一节实现串口通讯的函数及串口编程简介 API函数不仅提供了打开和读写通讯端口的操作方法,还提供了名目繁多的函数以支持对串行通讯的各种操作。常用函数及作用下: 函数名作用 CreateFile 打开串口 GetCommState 检测串口设置 SetCommState 设置串口 BuilderCommDCB 用字符串中的值来填充设备控制块 GetCommTimeouts 检测通信超时设置 SetCommTimeouts 设置通信超时参数 SetCommMask 设定被监控事件 WaitCommEvent 等待被监控事件发生 WaitForMultipleObjects 等待多个被监测对象的结果 WriteFile 发送数据 ReadFile 接收数据 GetOverlappedResult 返回最后重叠(异步)操作结果 PurgeComm 清空串口缓冲区,退出所有相关操作 ClearCommError 更新串口状态结构体,并清除所有串口硬件错误 CloseHandle 关闭串行口 用Windows API 编写串口程序本身是有巨大优点的,因为控制能力会更强,效率也会更高。 API编写串口,过程一般是这样的: 1、创建串口句柄,用CreateFile; 2、对串口的参数进行设置,其中比较重要的是波特率(BaudRate),数据宽度(BytesBits),奇偶校验(Parity),停止位(StopBits),当然,重要的还有端口号(Port); 3、然后对串口进行相应的读写操作,这时候用到ReadFile和WriteFile函数; 4、读写结束后,要关闭串口句柄,用CloseFile。 下面依次讲述各个步骤的过程。

1C#中串口通信编程教程

C#中串口通信编程教程 本文将介绍如何在.NET平台下使用C#创建串口通信程序,.NET2.0提供了串口通信的功能,其命名空间是System.IO.Ports。这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。我们将使用标准的RS232C在PC间通信。它工作在全双工模式下,而且我们不打算使用任何的握手或流控制器,而是使用无modem连接。 命名空间 System.IO.Ports命名空间中最重用的是SerialPort类。 创建SerialPort对象 通过创建SerialPort对象,我们可以在程序中控制串口通信的全过程。 我们将要用到的SerialPort类的方法: ReadLine():从输入缓冲区读一新行的值,如果没有,会返回NULL WriteLine(string):写入输出缓冲 Open():打开一个新的串口连接 Close():关闭 Code: //create a Serial Port object SerialPort sp=new SerialPort(); 默认情况下,DataBits值是8,StopBits是1,通信端口是COM1。这些都可以在下面的属性中重新设置 : BaudRate:串口的波特率 StopBits:每个字节的停止位数量 ReadTimeout:当读操作没有完成时的停止时间。单位,毫秒 还有不少其它公共属性,自己查阅MSDN。 串口的硬件知识 在数据传输的时候,每个字节的数据通过单个的电缆线传输。包包括开始位,数据,结束为。一旦开始位传出,后面就会传数据,可能是5,6,7或8位,就看你的设定了。发送和接收必须设定同样的波特率和数据位数。

串口通信的接线方法

目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422、RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1、DB9和DB25的常用信号脚说明 2、RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 图2 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。 3、串口调试中要注意的几点: 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; 线路焊接要牢固,不然程序没问题,却因为接线问题误事;

串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 RS232C标准串口接线方法 (第二版) 检验仪器与微机的通讯主要是以RS232C标准接口为主,而串口的接线方法也有一定的标准,在此谈谈几种常用的串口接法,仅作参考: 一、标准接法 1、9对9(包括9针对9孔,9孔对9孔,9针对9针): 说明:以下的孔、针指串口线两端的串口,不过2、3有可能不交换 2-------------3 3-------------2 4-------------6 5-------------5 6-------------4 7-------------8 8-------------7 2、9对25(包括9孔对25孔,9孔对25针) 2-------------3 (备注:2、3有可能不交换) 3-------------2 4-------------6 5-------------7 6-------------20 7-------------5 8-------------4

51单片机串口通信讲解

51系列单片机串口通信实例教程 单片机的串口通信看起来是很复杂的,主要是因为他用到了更多的寄存器,与前面的知识相比他更具综合能力,写起来考虑的问题自然也变多了.而前面学习过的定时器与中断将是单片机通信的基础. 单片机的中断系统中第4个中断就是串口中断,要进行串口通信首先就要打开CPU总中断EA,还要打开串口通信中断ES,这是串口通信的前堤,而串口通信也跟计时器一样有很多的模式,因此我们还要设置SCON寄存器来指定采用哪一种方式进行通信,而在通信的过程中,我们还要设定通信的波特率,不然的话,单片机是没办法进行采样的,这样也不会得到正确的结果了.我在实验过程中用到的是1号定时器来设定的波特率,用到了计时器方式2,也就是8位自动重装,这样可以简化编程,她的实现思想就是将常数放入TH,而TL中则是初始化参数,当溢出时,单片机会自动将TH中的常数装入TL中. 再来说说波特率,我们为什么要设定波特率,因为单片机会以16倍波特率的速度进行采样,而在实验中我们用的是10位异步收发方式,因此要将SM0置0,SM1置1.而其中的10位

有8位数据位,第一位和最后一位是发送数据的起始与结束.采用高的皮特率就不会出错啦.而波特率是有一个公式的: 方式0的波特率 = fosc/12 方式2的波特率 =(2SMOD/64)· fosc 方式1的波特率 =(2SMOD/32)·(T1溢出率) 方式3的波特率 =(2SMOD/32)·(T1溢出率) T1 溢出率= fosc /{12×[256 -(TH1)]} 根据公式我们很容易就算出当晶振为110592HZ时,要达到9600的波特率,我们只需要将TL1置FDH即可,如下图: 除此之外,你还要将SCON中的REN位置1,不然的话,单片机是不会接收数据的. 还有不要忘了选择定时器的工作方式,设置TMOD为0x20既是工作方式2,8位自动重装定时器. 这样一来,初始批工作算是差不多了.而串口通信分为中断方式,和查询方式,如果你想用查询方式你也不用设置IE寄存器了. 在串口通信中,还有一个很重要的寄存器SBUF,其实也不是一个,是两个,只是它们共用同一个地址,再热气表达式的不同,单片机会自动选择使用哪一个SBUF. 下面是我写的一个例子程序,产生的效果是:向单片机发送任一个0~255之间的数,将会被显示到数码管上.并且单片机还会自动把刚才传过去的数又发送回来 ,实验过程中用到了几个工具如下:

三菱 FX系列PLC串口通讯配置方法

WebAccess 与三菱 FX系列PLC串口通讯配置方法 WebAccess三菱FX系列驱动支持以下型号PLC:FX, FX0, FX0N, FX1N,FX2N,FX1S等。FX系列PLC与上位机软件的通讯方式分为:RS232与RS485两种模式,默认通讯参数如下:波特率:9600,数据位:7位,停止位:1位,奇偶校验:偶校验,下面分别从两个方面进行配置说明: 一、RS232方式通讯 通常情况下,三菱FX系列PLC通过编程口(PS/2)与上位机软件进行RS232模式通讯,此时PLC中不需要做特殊配置,只需在WebAccess中将PLC对应的通讯参数匹配即可。步骤如下: 1、添加通讯端口 图1 添加通讯端口 数据流控(Flow Control):Rts、Dtr握手协议 当使用RS232/RS485转换器进行通讯连接时,数据流控信号将根据该转换器的流 控功能来决定。有些RS232/RS485转换器不需要软件做任何类型的握手协议,而有些 则需要软件进行Rts信号握手协议。强烈建议用户选择具有自动流控的RS232/RS485 转换器。 2、添加设备

图2 设备参数配置 单元号:实际PLC的串行地址号,即Device ID。单个PLC可以默认0进行通讯。 3、添加IO点 根据下图中的“参数”栏选择合适的参数类型(模拟量、数字量)和相应的转换代码。 图3 添加IO点

表1

二、RS485方式通讯 为便于远距离通讯,三菱FX2N系列PLC通过FX2N-485-BD模块实现RS485方式与WebAccess软件通讯,安装FX2N-485-BD需设置PLC的D8120寄存器,请参照《FX通讯用户手册》。FX2N-485-BD通讯模块如下图: FX2N-485-BD模块安装位置图: 图4 FX2N-485-BD模块及接线图 (1)三菱PLC配置方法步骤 1、FXGP/WIN-C编程软件配置方法 使用FXGP/WIN-C编程软件来进行串行口设置。用SC-09编程电缆连接电脑与PLC,在“PLC”下拉菜单中选择“串行口设置(D8120)” 图5 FXGP/WIN-C编程软件串口通讯参数配置 如下图所示,在“硬件”下拉框中选择“RS-485”,在“控制线”下拉框中选择“H/W mode”。

LabVIEW串口通信入门教程

串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机、仪器等很多都还是使用串口通信的。论坛上很多朋友都经常会使用到串口,并遇到一些问题,这里有必要做一个详细的说明,以方便广大会员朋友方便使用。 首先补充一个比较重要的问题,就是在LabVIEW中使用串口的话一定要先安装VISA这个驱动,然后生成的EXE运行时也需要在目标机上安装VISA Runtime Engine,可以在打包时一起打包。 1.串口扩展的问题: 先说一下串口的扩展问题,一般的台式机或工控机上都至少有二个串口,一般都是够用的,但是现在市场上已经很难找到带串口的笔记本了,而有时候在外出调试时需要在笔记本中使用到串口的,这时一般是使用USB-RS232的转接线,价格从十几到一百多都有,很多朋友反应在使用价格低的转接线时会出现乱七八糟的问题,而贵一点的线就很少听说有其它问题的,所以大家在使用便宜的USB-RS232转接线时要特别注意线的质量,遇到一些奇怪的问题时先考虑换一根好一点的线。PCI-RS232扩展卡也同理,便宜的卡也容易出问题,尽量买好一点的,以免因小失大。PCI-RS232一般至少能扩展2个串口,有些BT一点的可以扩展到8-16个,一堆线和接头。转接线和扩展卡一般是要装驱动的。 2.串口功能的确认: 在使用串口之前,最好先确认一下串口是否正常,特别是使用转换接或扩展卡的。检查的方法很简单,就是将串口的2、3脚短接起来,3脚是发送数据,2脚接收数据,就是这个串口自发自收。电脑上的串口软件一般是用串口调试助手,很出名的,也好用。如下图所示:

图1串口调试助手 打开软件,选择已经短接好的串口号,点击“手动发送”,如果串口是好的,2、3脚又短接起来了,马上就可以在上面的接收框里看到接收的数据就是发送的数据。稍微要注意一下的是有些电脑的COM1和COM2的位置是反过来的,所以要确定好串口调试助手左上角的串口上择的是已经短接的那一个,如果COM1没接收到,可以再先COM2再发一次看一下。 3.串口线的检查: 检查好串口后,一般也要注意一下使用的串口线,标准的串口线是9根线都是用上的,但有一些是只使用了三根线的:2、3、5。第3个脚管是发送,第2个管脚接收,另一个5是地线,这里叫它简化的串口线,简化的串口线能用上的地方,标准的串口线也肯定能用上,因为标准线的9根线已经包括了简化串口线中的3根线,但标准串口线能用上的地方,简化串口线就不一定能用上,所以在使用串口线之间一定要确定好串口线的类型,一般买的串口线都是标准线,但自制的串口线因为应用场合不同就要先确定一下。 G串口线还有一个地方需要注意一下的,就是2、3脚的接法,标准接法中是2、3脚交叉的,即这边的2接另一边的3,这边的3接另一边的2,扭了一下,所以叫交叉线,因为正常使用时,这边第二脚是发送数据,另一边第三脚是接收数据,所以要将这二个管脚连接起来,这样才能正常使用。但是有些情况下,2、3是直连的,即这边的第2脚连接另一边的第2脚,第3脚连接第3脚,这种叫直连线,这种线一般是用于延长串口的,比如需要将工控机的串口接头引到机柜表

windows串口通信的基本步骤

串口通信的基本步骤 (1) 通过CreateFile(“COMx:“,…) 打开串口 (2) 通过配置DCB结构体和SetCommState函数,设置串口的参数。 (3) 通过ReadFile()和WriteFile 读写串口 Windows 串口通信实例 封装了一个串口通信的C++类CSerial,通过CSerial类的OpenSerialPort()可以打开一个串口,串口打开后后自动新建线程读取串口数据,并通过MessageBox简单的显示出数据。通过CSerial类的SendData()方法可以向串口发送数据。 主函数中,新建了一个CSerial类对象,打开串口2,然后简单的通过一个消息框循环来控制向串口不断的发送数据。 程序的效果图如下:

使用虚拟串口工具虚拟出串口对COM2和COM3,本实例程序读写COM2,使用串口调试助手打开COM3。 -> 在“是否向串口发送数据”消息框中,点击”是(Y)”会向串口发送一条”This is a example”数据。如图,在串口调试助手中收到该数据包 -> 在串口调试助手中,手动发送”jarvischu”,程序会读取到该数据并弹出消息框显示。 源码如下: Serial.h #pragma once #include class CSerial { public: CSerial(void); ~CSerial(void); //打开串口 BOOL OpenSerialPort(TCHAR* port,UINT baud_rate,BYTE date_bits,BYTE stop_bit,BYTE parity=NOPARITY); //发送数据 BOOL SendData(char* data,int len); public: HANDLE m_hComm; }; Serial.cpp #include "StdAfx.h" #include "Serial.h" #include typedef unsigned (__stdcall *PTHREAD_START) (void *); CSerial::CSerial(void) { m_hComm = INV ALID_HANDLE_V ALUE; } CSerial::~CSerial(void) { if(m_hComm != INV ALID_HANDLE_VALUE) { CloseHandle(m_hComm); } } /****************************************************************************** *************** * 功能:读串口线程回调函数 * 描述:收到数据后,简单的显示出 来 *************************************************************************** *****************/ DWORD WINAPI CommProc(LPVOID lpParam) {

串口通信基本接线方法

串口通信基本接线方法 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口 (RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1.DB9和DB25的常用信号脚说明  9针串口(DB9) 25针串口(DB25) 针号功能说明缩写针号功能说明缩写 1 数据载波检测 DCD 8 数据载波检测 DCD 2 接收数据 RXD 3 接收数据 RXD 3 发送数据 TXD 2 发送数据 TXD 4 数据终端准备 DTR 20 数据终端准备 DTR 5 信号地 GND 7 信号地 GND 6 数据设备准备好 DSR 6 数据准备好 DSR 7 请求发送 RTS 4 请求发送 RTS 8 清除发送 CTS 5 清除发送 CTS 9 振铃指示 DELL 22 振铃指示 DELL 2.RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 · 同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; · 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。 3.串口调试中要注意的几点:

串口通信测试方法

串口通信测试方法 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,表示选择本单片机; Ox**: PC机发送Ox**,单片机回送Ox**,表示选择单片机后发送数据通信正常:在系统工作过程中,单片机接收到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语言来写的话,无论你是先发地址帧,然后数据帧,还是只发数 据帧,最后显示的都是一样的内容,而汇编语言是不行的。

VS之MFC串口通信的编写教程

VS2010之MFC串口通信教程 说明:本人也是刚刚入门MFC,参照一些资料和源代码就实验做了这么一个串口通信工具!资料来源主要有鸡啄米博客网站,里面有详细的学习教程!网上的VS2010源代码都比较少,建议大家先理解一个源代码的构架和结构再深入学习!本文档可以一步一步教你从建立工程到实验调试,是一个非常完整的教程!非常适合新手练习! ——贺州学院大学生创新基地实验室在制作串口通信所遇到的问题:编辑框的滚动条不会随着数据的更新保持在最后一行!接下来我们开始讲解MFC串口通信的制作: 一、打开VS2010软件,然后新建一个项目,如下图所示; 我们要用到就是对话框模块,所以选择如下图所示 最大化框最好别选,因为本人现在也没搞出来; 点击完成就新建好一个工程了,等资源就绪之后我们就可以进行制作了; 我们可以看到就绪之后的界面如下图所示,按照步骤把原来的静态文本框和确定按钮、取消按钮删掉; 二、为我们的对话框添加控件 添加两个组合边框,并放置好位置; 修改组合边框显示的名称;

在组合边框里面添加编辑文本框; 在这一步一定要小心选择右边的属性; 这一步是把串口控件添加到对话框中来; 选择我们需要的串口控件如下图所示; 三、为编辑框,Combox框,串口控件添加变量; 四、为按钮和串口控件添加程序函数 void C串口V2Dlg::OnBnClickedButtonOpen()//打开串口按钮程序 { // TODO: 在此添加控件通知处理程序代码? CString str,str1,n; //定义字符串 GetDlgItemText(IDC_BUTTON_OPEN,str); CWnd *h1; h1=GetDlgItem(IDC_BUTTON_OPEN); //指向控件的caption if(!()) {

MATLAB串行通信的实现方法

MATLAB串行通信的实现方法 摘要本文介绍MATLAB环境下上位机与下位机通过RS232接口进行串行通信的实现方法;详细叙述了在MATLAB环境下使用其自带的控制工具箱中的串 口事件回调函数,实时接收下位机输出串行信号的实现过程。 关键词 MATLAB7.0,串口通信,回调函数 MATLAB是由美国MATHWORKS公司开发的面向理论分析研究和工程设计处理的一套具有强大功能的软件系统。在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。其编程语法规则与一般的结构化编程语言大同小异,而且使用更方便,具有一般编程基础的用户都可以很快熟练掌握。MATLAB内置大量的数学算法函数,只要几个语句就能实现诸如矩阵/行列式运算、FIR/IIR滤波等数据分析处理、复杂的图形显示等。在实际应用中常常要通过各种方式将数据传入计算机,进而借助MATLAB的强大分析处理能力对数据进行分析、处理和图形显示。 本文提出在上位机MATLAB 7.0环境下,使用RS232串行接口实时接收。该方法较之使用VC/VB高级语言编程,极大地缩减了开发时间,提高了开发效率。 一、总体框图 本设计的总体原理框图可见图1, 系统主要由上位机(PC机)和下位机(PC104)部分。上位机和下位机通过RS232进行通讯。上位机负责数据处理和图形化显示,它是在MATLAB7.0环境下进行的,应用了仪器控制工具箱中关于串行通信的函数,通过程序控制整个系统的工作并进行数据处理。下位机负责数据采集和响应主机的控制处理信号。 二、通信原理 在MATLAB7.0中的设备控制工具条(INSTRUMENT CONTROL TOOLBOX)用来负责上、下位机之间的通信。该设备控制工具箱的特色如下:INSTRUMENT CONTROL TOOLBOX包括两大部件:M文件函数和接口驱动适配器。这两部件提供了MATLAB 与外设的通讯功能如图1所示。

串口通信基本接线方法

串口通信基本接线方法 龚建伟2001.6.20 目次:1.DB9和DB25的常用信号脚说明 2.RS232C串口通信接线方法 3.串口调试中要注意的几点 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连,以回答前段网友的咨询。 1.DB9和DB25的常用信号脚说明 9针串口(DB9)25针串口(DB25) 针号功能说明缩写针号功能说明缩写 1数据载波检测DCD8数据载波检测DCD 2接收数据RXD3接收数据RXD 3发送数据TXD2发送数据TXD 4数据终端准备DTR20数据终端准备DTR 5信号地GND7信号地GND 6数据设备准备好DSR6数据准备好DSR 7请求发送RTS4请求发送RTS 8清除发送CTS5清除发送CTS 9振铃指示DELL22振铃指示DELL 2.RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 ?同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; ?两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 9针-9针25针-25针9针-25针 233222

上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战 百胜。 3.串口调试中要注意的几点: ?不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; ?线路焊接要牢固,不然程序没问题,却因为接线问题误事; ?串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; ?强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。

3串口通信教程

直接分析mscomm.h头文件就可以完备地获取这个控件的使用方法(主要是public类型的接口函数),下面我们摘取了头文件的主要代码并对其关键部分给出了注释: #if!defined(AFX_MSCOMM_H__) #define AFX_MSCOMM_H__ #if_MSC_VER>1000 #pragma once #endif//_MSC_VER>1000 //Machine generated IDispatch wrapper class(es)created by Microsoft Visual C++ //NOTE:Do not modify the contents of this file.If this class is regenerated by //Microsoft Visual C++,your modifications will be overwritten. ///////////////////////////////////////////////////////////////////////////// //CMSComm wrapper class class CMSComm:public CWnd { protected: DECLARE_DYNCREATE(CMSComm) public: CLSID const&GetClsid() { static CLSID const clsid={0x648a5600,0x2c6e,0x101b,{0x82,0xb6,0x0,0x0,0x0,0x0,0x0, 0x14}}; return clsid; } virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName,DWORD dwStyle, const RECT&rect, CWnd*pParentWnd,UINT nID, CCreateContext*pContext=NULL) {return CreateControl(GetClsid(),lpszWindowName,dwStyle,rect,pParentWnd,nID);} BOOL Create(LPCTSTR lpszWindowName,DWORD dwStyle, const RECT&rect,CWnd*pParentWnd,UINT nID, CFile*pPersist=NULL,BOOL bStorage=FALSE, BSTR bstrLicKey=NULL) {return CreateControl(GetClsid(),lpszWindowName,dwStyle,rect,pParentWnd,nID, pPersist,bStorage,bstrLicKey);} //Attributes public:

串口通信基本接线方法

串口通信基本接线方法 串口通信基本接线方法 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1.DB9和DB25的常用信号脚说明 9针串口(DB9) 25针串口(DB25) 针号功能说明缩写针号功能说明缩写 1 数据载波检测 DCD 8 数据载波检测 DCD 2 接收数据 RXD 3 接收数据 RXD 3 发送数据 TXD 2 发送数据 TXD 4 数据终端准备 DTR 20 数据终端准备 DTR 5 信号地 GND 7 信号地 GND 6 数据设备准备好 DSR 6 数据准备好 DSR 7 请求发送 RTS 4 请求发送 RTS 8 清除发送 CTS 5 清除发送 CTS 9 振铃指示 DELL 22 振铃指示 DELL 2.RS232C串口通信接线方法(三线制)

首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 ? 同一个串口的接收脚和发送脚直接用线相连对9针串 口和25针串口,均是2与3直接相连; ? 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。 3.串口调试中要注意的几点: 串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 单工、半双工和全双工的定义 如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。 如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。 如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。

C 和 串口通信方法 SerialPort控件

本例程主要讲解使用C#,实现与232串口通信。达到采集串口数据,监控,可视化处理等。 一.概述 在Visual Studio 中编写串口通讯程序,一般都使用 Microsoft?Communication?Control(简称MSComm)的通讯控件,只要通?过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。但在技术广泛应用的今天,Visual 没有将此控件加入控件库,所以人们采用了许多方法在Visual 来编写串口通讯程序:第一种方法是通过采用Visual Studio 中原来的MSComm控件这是最简单的,最方便的方法,但需要注册;第二种方法是采用微软在.NET推出了一个串口控件,基于.NET的P/Invoke 调用方法实现;第三种方法是自己用API写串口通信,虽然难度高,但可以方便实现自己想要的各种功能。 现在微软推出了最新版本的Visual Studio 2005开发工具,可以不再采用第三方控件的方法来设计串口通讯程序。NET Framework 类库包含了SerialPort 类,方便地实现了所需要串口通讯的多种功能,为了使MSComm编程方法快速转换到以SerialPort类为核心的串口通讯的设计方法,本文着重讨论了Visual Studio 的MSComm控件和SerialPort 类设计方法的异同点。 ? 二.SerialPort常用属性、方法和事件 1.命名空间 命名空间包含了控制串口重要的SerialPort类,该类提供了同步I/O 和事件驱动的I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访问,所以在程序代码起始位置需加入Using 。 2.串口的通讯参数 串口通讯最常用的参数就是通讯端口号及通讯格式(波特率、数据位、停止位和校验位),在MSComm中相关的属性是CommPort和Settings。SerialPort类与MSComm有一些区别: a.通讯端口号

51单片机串口通信详细教程

#include #include "intrins.h" /*适用于51单片机*/ void delayms(unsigned char ms); //延时ms voidsenddata(unsigned char s); voidsendstring(char *s); sbit D1=P1^0; sbit D2=P1^1; //指示灯 unsigned char busy; unsigned char flag; void main() { TMOD=0X20; //定时器1工作在方式2 TH1=0xf3; TL1=0xf3; // 晶振为12M,若晶振为11.0592,TH1改为0xfd SCON=0X50; //串口工作在方式1,允许接收 TR1=1;//定时/计数器1开始工作 //SCON=0X50; //串口工作在方式1,允许接收 PCON=0X00; //该寄存器的第一位SMOD是波特率的倍速位,设置为1时波特率提高一倍,这里不倍速,根据TH1的设置,波特率为2400 EA=1; //开总中断 ES=1; //开串口中断 //D1=0; D2=0; sendstring("i love it\n") ; while(1) { if(flag==1) { flag=0; sendstring("have receive the word\n"); delayms(100); } } } voidsenddata(unsigned char s) {

while(busy); busy=1; SBUF=s; //SBUF为缓冲器 } voidsendstring(char *s) { while(*s) { senddata(*s++); } } void delayms(unsigned char ms) //延时ms { unsigned char i; while(ms--) { for(i = 0; i< 120; i++); } } void USART_ISR() interrupt 4 { if(RI) { RI=0; flag=1; } if(TI) { TI=0; busy=0; } }

相关主题
文本预览
相关文档 最新文档