实际应用中,通常要遇到pc与单片机系统的通信问题。由于内容摘要:

中读入字符串 = 39。 读出字符串送显 End Select End Sub 其他工作 完成通信的主要功能后,还需要输入程序完成其他两个按钮的功能,这两个按钮负责清除发送和接收两个文本框的内容。 该部分代码内容十分简单,其代码实现如下: 39。 清空接收文本框 Private Sub Button_RECV_C_Click() = 39。 清空接收文本框 End Sub 39。 清空发送文本框 Private Sub Button_SEND_C_Click() = 39。 清空发送文本框 其他工作 使用该软件实现通信效果的界面如图所示。 运行测试程序 使用 VC++开发串行口通信软件  用户界面设计  初始化程序  发送数据  接收数据  其他工作 使用 Visual C++( VC++)开发串口通信软件的方法。 用户界面设计 新建工程步骤 1 新建工程步骤 2 建立新工程后界面 编辑程序界面 添加控件 最终完成界面 用户界面设计 修改程序界面用到的各个控件的属性后,要使用这些控件,还需要为其添加对应的变量。 该项工作是使用 ClassWizard面板来完成的。 在 [Member Variables]选项卡中相应控件的 Control ID, MFC单击 [Add Variables]按钮为相应控件添加对应变量。 ClassWizard面板 添加控件对应变量 用户界面设计 各个控件添加变量的具体设置如表所示。 控件 ID 对应变量 变量类别 变量类型 IDC_EDIT_RECV m_str_recv Value CString IDC_EDIT_SEND m_str_send Value CString IDC_HEX M_hex control CButton IDC_MSCOMM m_msm control CMSComm 添加变量后的 ClassWizard面板如图所示。 初始化程序 在 VC中,需要将这部分代码添加到对话框类的 OnInitDialog()函数中。 if(()) // 如果串口已打开,则关闭串口 (FALSE); (2); // 选择 COM2 if(!()) (TRUE); // 打开串口 else AfxMessageBox(serial port open error); (“9600, n, 8, 1”); // 设置波特率 9600,无 校验, 8位数据位, 1位停止位 (1); // 串口接收缓冲区中有多于或等于 1 个字符时将产生接收数据的 OnComm事件 (0); // 设置当前接收区数据长度为 0 (); // 预读缓冲区以清除残留数据 接收数据 当 MSComm的接收缓冲区有字符时,程序会发送事件消息,OnComm()函数响应该消息并进行处理。 由于 MSComm类的 GetInput()函数返回的数据变量类型为 Variant型,而编辑框对应的显示字符串是Cstring型,因此接收数据时,需要先进行类型转换。 在 VC中,转换过程如下: OnComm()函数的完整代码 • 将 Variant类型转换为 ColeSafeArray类型; • 将 ColeSafeArray类型转换为 BYTE型数组; • 将 BYTE型数组转换为 Cstring变量。 发送数据 发送数据功能使用 [发送数据 ]按钮对应函数 Onsend()来实现。 发送数据时,程序仅需要读出发送编辑框的内容,将其转化为发送程序需要的数据格式后,再使用 C语言中的强制类型转换功能,将其转换为 ColeVariant数据类型,由 MSComm类的 SetOutput()函数送入发送缓冲区即可。 发送函数 OnSend()的源代码 其他工作 void CRS232_VCDlg::OnClr() { // TODO: Add your control notification handler code here m_str_send = ; // 清空发送文本框 m_str_recv = ; // 清空接收文本框 UpdateData(FALSE); // 更新文本框内容 } [清空 ]按钮用于清除发送编辑框和接收编辑框中的已有内容,其相应函数 OnClr的代码如下: 其他工作 运行测试程序 连接串口线,启动软件后,首先勾选 [十六进制发送 /接收 ]单选框,在发送文本框中添入数据“ 02 35 08 4A…” 的字符串,单击 [发送 ]按钮。 然后删除发送文本框中的内容,去掉 [十六进制发送 /接收 ]的勾选,再填入数据“ Goodbye”,软件的测试效果如图所示。 USB接口技术 USB的全称为 Universal Searial Bus,即通用串行总线。 与 RS232类似, USB总线也是一种串行外围设备连接的总线形式,它是 1995年由Microsoft、 Compaq、 IBM等公司联合制定的一种新的 PC串行通信协议,从推出之日起就得到了各大厂商的广泛支持,得以不断完善和发展,目前 USB协议的最新版本已经达到了。 USB总线作为一种新的串行总线,不仅在传输速度上得到了极大的提高,同时还具有接口简单、真正的即插即用、传输线供电、多设备级联等特性。 USB总线的成功推出,对外设的接口产生了广泛的影响,目前使用 USB总线接口的如键盘、鼠标、闪存、摄像头等外围设备在市场上已广泛存在。 本节将系统地介绍 USB总线开发的相关知识,帮助读者尽快熟悉 USB开发流程。 USB接口技术 • USB总线介绍 • EZUSB系列接口控制芯片 • EZUSB固件程序开发 • USB通信设计要点 USB总线介绍 USB设备主要具有以下优点: ( 1)可以热插拔 ( 2)携带方便 ( 3)标准统一 ( 4)可以连接多个设备 • USB的互联 • USB的设备 • USB的主机 1. 总线的拓扑结构: USB设备与主机之间的各种连接方式。 2. 内部层次关系:根据性能叠置, USB的任务被分配到系统的每一个层次。 3. 数据流模式:描述了数据在系统中通过 USB从产生方到使用方的流动方式。 4. USB的调度: USB提供一个共享的连接。 对可以使用的连接进行调度以支持同步数据传输,并且避免优先级判别的开销。 USB的互联主要包括以下几方面 :  USB的总线结构  USB的电气特性与电源管理  USB总线协议  系统设置  数据流种类  USB设备  USB主机:硬件和软件 一个典型的 USB系统的描述如下。 它主要被定义为 3个部分: USB的总线结构 USB连接了 USB设备和 USB主机, USB的物理连接是有层次性的星形结构。 每个网络集线器是在星形的中心,每条线段是点点连接。 从主机到集线器或其功能部件,或从集线器到集线器或其功能部件。 在任何 USB系统中,只有一个主机。 USB和主机系统的接口称为主机控制器,主机控制器可由硬件、固件和软件综合实现。 根集线器是由主机系统整合的,用以提供更多的连接点。 USB的总线结构 USB的设备如下所示 : 1. 网络集线器,向 USB提供了更多的连接点。 2. 功能器件:为系统提供具体功能,如 ISDN的连接,数字的游戏杆或扬声器。 USB设备提供的 USB标准接口的主要依据: 1. 对 USB协议的运用。 2. 对标准 USB操作的反馈,如设置和复位。 3. 标准性能的描述性信息。 USB的电气特性与电源管理 1.电气特性 • USB的高速信号的比特率定为 12Mbps。 • 低速信号传送的模式定为。 USB的电缆 低速模式需要更少的 EMI保护。 两种模式可在用同一 USB总线传输的情况下自动地动态切换。 USB传送信号和电源是通过一种 4线的电缆,图中的两根线用于发送信号。 存在两种数据传输率: USB的电气特性与电源管理 2.机械特性 所有设备都有一个上行的连接。 上行连接器和下行连接器不可简单地互换,这样就避免了集线器间非法的循环往复的连接。 电缆中有 4根导线:一对互相缠绕的标准规格线,一对符合标准的电源线。 连接器有4个方向,具有屏蔽层,以避免外界干扰,并有易拆装的特性。 3. 电源 • 电源分配: 即 USB的设备如何通过 USB分配得到由主计算机提供的能源。 • 电源管理: 即通过电源管理系统, USB的系统软件和设备如何与主机协调工作。 电源主要包括以下两个方面: USB总线协议 1. USB总线属一种轮询方式的总线,主机控制端口初始化所有的数据传输。 2. 存在两种类型的通道:流和消息。 3. 事务预处理允许对一些数据流的通道进行控制,从而 在硬件级上防止了对缓冲区的高估或低估,通过发送不确认握手信号从而阻塞了数据的传输速度。 系统设置 1. USB设备的安装 主机对每个设备指定唯一的 USB地址,并检测这种新装的 USB设备是集线器还是功能部件。 2. USB设备的拆卸 当 USB设备从集线器的端口拆除后,集线器关闭该端口,并且向主机报告该设备已不存在。 3. 总线标号 总线标号就是对连接在总线上的设备指定唯一地址的一种动作。 数据流种类 1. 控制数据传送:在设备连接时用来对设备进行设置,还可对指定设备进行控制,如通道控制。 2. 批量数据传送:大批量产生并使用的数。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。