精华内容
下载资源
问答
  • 手头有个老设备需要通过并口控制,无奈,笔记本电脑没有并口,只能买一个USB转并口的转接线,某宝花了28元买了一根号称支持Winxp、Win7、Win8、Win10的usb转DB25打印机线。 快递一到就迫不及待的接上电脑,...

    工作环境(蓝色粗体字为特别注意内容)

    1,系统环境:Win7 Ultimate sp1、libusb-win32 version 1.2.6.0、VC98

    2、参考文献:https://www.cnblogs.com/lknlfy/p/3189949.html

    手头有个老设备需要通过并口控制,无奈,笔记本电脑没有并口,只能买一个USB转并口的转接线,某宝花了28元买了一根号称支持Winxp、Win7、Win8、Win10的usb转DB25打印机线。

    快递一到就迫不及待的接上电脑,驱动倒是自动成功安装,于是,打开设备管理,左看右看愣是没有看到LPT接口!通常,如果看到LPT1接口的话,在VC中可以使用如下方式打开

     hPort  = CreateFile("\\\\.\\LPT1",GENERIC_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    
    	if (hPort == INVALID_HANDLE_VALUE)
    	{
    		printf("Cannot open LPT%d!\n", port_id);
    		return 0;
    	}

    虽然没看到LPT接口,但是仔细检查,发现Universal Serial Bus controllers(usb控制器)下面多了一个“usb printer support”,估计这就是这根转接线了。于是点击windows开始-Devices and printers(设备和打印机)

    发现一个未指定的设备:

    单击任一打印机,选择Property(属性)-Ports(端口),发现一个有意思的端口“USB001”

    也就是说,如果该端口上面连接着打印机,那么 新建一个打印机设备,并且指定该端口,就能够正常使用该打印机来进行打印工作。但是,回到前面的初衷,我们是要用DB25打印机端口来跟一款老设备进行通信,而不是用来打印!既然出现了“USB001”于是灵光一闪,想到咱们在VC中能不能像下面这样写呢?

    hPort  = CreateFile("\\\\.\\USB001",GENERIC_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    

    很遗憾,打开失败,按照我上一篇博客将USB001的打印机映射到LPT1端口,在CreateFile也是打开失败。查找资料,发现有关Windows操作USB设备的方法,典型的方法有两种:1、使用Window API来操作USB端口,2、使用第三方USB库libusb-win32来操作USB端口。这里我们选择后者,因为第一种方法要安装Windows SDK,还得装一堆东西,而我手头只有一个VC98的cl编译器(囧~~~~~),纯命令行编译。下面来看看如何使用libusb-win32来操作这个USB转DB25转接线。

    Step1.当然是下载libusb-win32了,libusb-win32传送门

    下载下来之后,解压,应该有以下目录

    ├─bin
    │  ├─amd64
    │  ├─ia64
    │  └─x86
    ├─examples
    ├─include
    └─lib
        ├─bcc
        ├─dynamic
        ├─gcc
        ├─msvc
        ├─msvc_i64
        └─msvc_x64

    这里先介绍介绍几个重要的文件夹:

    (1)bin 目录主要是inf-wizard.exe这个程序,这个程序是libusb的驱动程序,需要先进行安装驱动。

    (2)examples目录主要是libusb-win32的一些例程

    (3)include目录存放libusb-win32的头文件

    (4)lib目录主要是存放已经编译好的现成的库

    首先,双击bin目录下面的驱动,选择对应usb转db25对应的端口,

     记住下面这两个值,后面用到!

    一路next,最后点击“Install Now”进行驱动安装

     驱动安装完成之后,打开设备管理器,你会看到如下的libusb设备:

    好,至此,libusb-win32的驱动安装完毕,下面开始在vc环境下面使用libusb控制这个usb设备。

    Step2:修改examples下面的bulk.c文件,将Step1中的Vendor ID和Product ID写入代码中,下面代码为改动后的代码,红色为改动的地方。

    #include "../include/lusb0_usb.h"
    #include <stdio.h>
    #include<windows.h>

    // Enables this example to work with a device running the
    // libusb-win32 PIC Benchmark Firmware.
    #define BENCHMARK_DEVICE

    //
    // TEST SETUP (User configurable)

    // Issues a Set configuration request
    #define TEST_SET_CONFIGURATION

    // Issues a claim interface request
    #define TEST_CLAIM_INTERFACE

    // Use the libusb-win32 async transfer functions. see
    // transfer_bulk_async() below.
    //#define TEST_ASYNC

    // Attempts one bulk read.
    #define TEST_BULK_READ

    // Attempts one bulk write.
    #define TEST_BULK_WRITE

    //
    // DEVICE SETUP (User configurable)

    // Device vendor and product id.
    #define MY_VID 0x1234
    #define MY_PID 0x1234

    // Device configuration and interface id.
    #define MY_CONFIG 1
    #define MY_INTF 0

    // Device endpoint(s)
    #define EP_IN 0x81
    #define EP_OUT 0x01

    // Device of bytes to transfer.
    #define BUF_SIZE 4

    //
    usb_dev_handle *open_dev(void);

    static int transfer_bulk_async(usb_dev_handle *dev,
                                   int ep,
                                   char *bytes,
                                   int size,
                                   int timeout);

    usb_dev_handle *open_dev(void)
    {
        struct usb_bus *bus;
        struct usb_device *dev;

        for (bus = usb_get_busses(); bus; bus = bus->next)
        {
            for (dev = bus->devices; dev; dev = dev->next)
            {
                if (dev->descriptor.idVendor == MY_VID
                        && dev->descriptor.idProduct == MY_PID)
                {
                    return usb_open(dev);
                }
            }
        }
        return NULL;
    }

    int main(void)
    {
        usb_dev_handle *dev = NULL; /* the device handle */
        char tmp[BUF_SIZE]={0x01,0x01,0x01,0x01};
        int ret;
        int sendTime = 100;
        
        void* async_read_context = NULL;
        void* async_write_context = NULL;

        usb_init(); /* initialize the library */
        usb_find_busses(); /* find all busses */
        usb_find_devices(); /* find all connected devices */


        if (!(dev = open_dev()))
        {
            printf("error opening device: \n%s\n", usb_strerror());
            return 0;
        }
        else
        {
            printf("success: device %04X:%04X opened\n", MY_VID, MY_PID);
        }

    #ifdef TEST_SET_CONFIGURATION
        if (usb_set_configuration(dev, MY_CONFIG) < 0)
        {
            printf("error setting config #%d: %s\n", MY_CONFIG, usb_strerror());
            usb_close(dev);
            return 0;
        }
        else
        {
            printf("success: set configuration #%d\n", MY_CONFIG);
        }
    #endif

    #ifdef TEST_CLAIM_INTERFACE
        if (usb_claim_interface(dev, 0) < 0)
        {
            printf("error claiming interface #%d:\n%s\n", MY_INTF, usb_strerror());
            usb_close(dev);
            return 0;
        }
        else
        {
            printf("success: claim_interface #%d\n", MY_INTF);
        }
    #endif

    #ifdef TEST_BULK_WRITE

    #ifdef BENCHMARK_DEVICE
        ret = usb_control_msg(dev, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
                              14, /* set/get test */
                              2,  /* test type    */
                              MY_INTF,  /* interface id */
                              tmp, 1, 1000);
    #endif

    #ifdef TEST_ASYNC
        // Running an async write test
        ret = transfer_bulk_async(dev, EP_OUT, tmp, sizeof(tmp), 5000);
    #else
        // Running a sync write test

       //每隔1秒发送一次数据
        while(sendTime>0){
        ret = usb_bulk_write(dev, EP_OUT, tmp, sizeof(tmp), 5000);
        sendTime--;
        Sleep(1000);
        }

    #endif
        if (ret < 0)
        {
            printf("error writing:\n%s\n", usb_strerror());
        }
        else
        {
            printf("success: bulk write %d bytes\n", ret);
        }
    #endif

    #ifdef TEST_BULK_READ

    #ifdef BENCHMARK_DEVICE
        ret = usb_control_msg(dev, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
                              14, /* set/get test */
                              1,  /* test type    */
                              MY_INTF,  /* interface id */
                              tmp, 1, 1000);
    #endif

    #ifdef TEST_ASYNC
        // Running an async read test
        ret = transfer_bulk_async(dev, EP_IN, tmp, sizeof(tmp), 5000);
    #else
        // Running a sync read test
        ret = usb_bulk_read(dev, EP_IN, tmp, sizeof(tmp), 5000);
    #endif
        if (ret < 0)
        {
            printf("error reading:\n%s\n", usb_strerror());
        }
        else
        {
            printf("success: bulk read %d bytes\n", ret);
        }
    #endif

    #ifdef TEST_CLAIM_INTERFACE
        usb_release_interface(dev, 0);
    #endif

        if (dev)
        {
            usb_close(dev);
        }
        printf("Done.\n");

        return 0;
    }

    /*
    * Read/Write using async transfer functions.
    *
    * NOTE: This function waits for the transfer to complete essentially making
    * it a sync transfer function so it only serves as an example of how one might
    * implement async transfers into thier own code.
    */
    static int transfer_bulk_async(usb_dev_handle *dev,
                                   int ep,
                                   char *bytes,
                                   int size,
                                   int timeout)
    {
        // Each async transfer requires it's own context. A transfer
        // context can be re-used.  When no longer needed they must be
        // freed with usb_free_async().
        //
        void* async_context = NULL;
        int ret;

        // Setup the async transfer.  This only needs to be done once
        // for multiple submit/reaps. (more below)
        //
        ret = usb_bulk_setup_async(dev, &async_context, ep);
        if (ret < 0)
        {
            printf("error usb_bulk_setup_async:\n%s\n", usb_strerror());
            goto Done;
        }

        // Submit this transfer.  This function returns immediately and the
        // transfer is on it's way to the device.
        //
        ret = usb_submit_async(async_context, bytes, size);
        if (ret < 0)
        {
            printf("error usb_submit_async:\n%s\n", usb_strerror());
            usb_free_async(&async_context);
            goto Done;
        }

        // Wait for the transfer to complete.  If it doesn't complete in the
        // specified time it is cancelled.  see also usb_reap_async_nocancel().
        //
        ret = usb_reap_async(async_context, timeout);

        // Free the context.
        usb_free_async(&async_context);

    Done:
        return ret;
    }
    vc98的cl编译器编译脚本如下:

    cl main.c ..\lib\msvc\libusb.lib

    编译成功:

    IDE环境自行配置inc和lib路径,暂且不在本文的讨论范围。编译运行之后该程序就会循环发送数据到usb转db25并口线,直到达到设定的次数。关于DB25打印机并口引脚定义,请看下图:

    针脚 功能                            针脚 功能

    1 选通 (STROBE低电平)         10 确认 (ACKNLG低电平)

    2 数据位0 (DATAO)             11 忙 (BUSY)

    3 数据位1 (DATA1)             12 缺纸 (PE)

    4 数据位2 (DATA2)             13 选择 (SLCT)

    5 数据位3 (DATA3)             14 自动换行 (AUTOFEED低电平)

    6 数据位4 (DATA4)             15 错误 (ERROR低电平)

    7 数据位5 (DATA5)             16 初始化(INIT低电平)

    8 数据位6 (DATA6)             17 选择输入 (SLCTIN低电平)

    9 数据位7 (DATA7)             18-25 地线路(GND)

    D0-D7为 数据线, S0-S7为状态线, 但是S0,S1,S2是看不见的(从图中你也可以看出), 状态线是用来读取数据的, 但S0却不同, 它是超时标志位, 其他的状态线从第10-11-12-13-15针是用来发送数据的(可以看出是5位). 那么我们怎么能得到这些数据端口呢? 很简单: 每一个并口都有一个地址. 在Windows2000中, 你可以在打印机端口(LPT1)的属性中看到他们. 比如:我的是0378-037F, 如果是10进制, 那么就是888. 同样你也可以看到你的COM端口的地址. 让我以打印机为例解释一下这些针位的意义:

    S0: 在EPP(增强的串口)模式下, 如果超时的话, 这位置1.

    S1: 没用(估计是装饰).

    S2: 大多数情况下没有使用.

    S3: 如果打印机发生了错误则置0. 它通常被叫做nError或者nFault.

    S4: 如果数据达到, 则置1.我们通常叫做Select.

    S5: 如果没有打印纸了则置1.通常叫做PaperEnd或者PaperEmpty或者PError.

    S6: 如果打印机得到了一个字节的数据则此位置0, 通常叫做nAck或者nAcknowledge.

    S7: 如果打印机处于繁忙的状态则此位置0, 通常叫做Busy.

    控制线:

    这些线通常用来输出,但有时也可以用于输入. 他们占用C0-C7(如图), 但是在接口上C4, C5, C6, C7是不可见, 他们占用的端口地址是0x37A.

     C0: 这一针脚是保留的. 他发送命令去读取端口上的数据(D0-D7). 当计算机启动的时候,这一位被置1,通常叫做nStrobe.

    C1: 保留.通过他发送命令给打印机, 可以得到下一条打印线.(LF)

    C2: 重置打印机并且清空数据缓冲区.(nInitialize)

    C3: 保留.置高电平打开数据输入.启动计算机时置0.(nSelectIn)

    地线:

    从G0-G7的针是接地用的, 他们一般是用来完善电路的.

    综上所述,在 我的应用程序里使用数据线而不是具有保留位的控制线或者状态线作为数据传输。原因显而易见:我们可以发送任何数据到数据线上,比如00000000,这样 8根针就没有任何电压(0伏特);当然也可以发送11111111(255),这样每根针都有+5伏特的电压。但是如果我们使用控制线,他有C0,C1和 C3是保留,当我们发送0000000的时候,他却只能是0100,所以这样数据就不正确了。

    信号

    数据位

    针脚

    方向

    -Strobe

    ?C0

    1

    Output

    +Data Bit 0

    D0

    2

    Output

    +Data Bit 1

    D1

    3

    Output

    +Data Bit 2

    D2

    4

    Output

    +Data Bit 3

    D3

    5

    Output

    +Data Bit 4

    D4

    6

    Output

    +Data Bit 5

    D5

    7

    Output

    +Data Bit 6

    D6

    8

    Output

    +Data Bit 7

    D7

    9

    Output

    -Acknowledge

    S6

    10

    Input

    +Busy

    ?S7

    11

    Input

    +Paper End

    S5

    12

    Input

    +Select In

    S4

    13

    Input

    -Auto Feed

    ?C1

    14

    Output

    -Error

    S3

    15

    Input

    -Initialize

    C2

    16

    Output

    -Select

    ?C3

    17

    Output

    Ground

    -

    18-25

    Ground

    Step3.按照引脚定义,我们将引脚接上示波器,观察①脚波形:

    说明有数据,且只有①脚有数据(0x01,8位数据,只有第一位是高电平),并且周期是1s,符合我们的要求,实验验证成功!

     

     

     

     

     

     

    展开全文
  • DB9 DB15 DB25 等各种DB接口封装库 ,库都是经过项目验证的,能够节省不少开发时间,与大家分享。
  • DB25BSM DB25FL DB25FLE DB25FLW DB25FS DB25FSW DB25SL DB25SLE DB25SLW DB25SS DB25SSM DB25SSMC DB25SSW DB37BSM DB37FL DB37FLE DB37FLW DB37FS DB37FSW DB37SL DB37SLE DB37SLW DB37SS DB37SSM DB37SSW DB50FL ...
  • ...DB9和DB25的常用信号脚说明;RS232接口针脚定义(2008-08-20 16:24:21) 9针接口针脚定义 Pin 1 Received Line Signal Detector (Data 说明:实际开发接口时,一般只要2,3
    转载自 http://blog.sina.com.cn/s/blog_72dba9a2010197yh.html
    DB9和DB25的常用信号脚说明;RS232接口针脚定义(2008-08-20 16:24:21)

    9针接口针脚定义
    Pin 1 Received Line Signal Detector (Data



    说明:实际开发接口时,一般只要2,3,5,即收、发和地三根线,就能实现通信。

    Carrier Detect)
    Pin 2 Received Data
    Pin 3 Transmit Data
    Pin 4 Data Terminal Ready
    Pin 5 Signal Ground
    Pin 6 Data Set Ready
    Pin 7 Request To Send
    Pin 8 Clear To Send
    Pin 9 Ring Indicator

    RS232接口针脚定义
    25针的接口定义:
    Pin 1 Protective Ground
    Pin 2 Transmit Data
    Pin 3 Received Data
    Pin 4 Request To Send
    Pin 5 Clear To Send
    Pin 6 Data Set Ready
    Pin 7 Signal Ground Pin 8 Received Line Signal Detector
    (Data Carrier Detect)
    Pin 20 Data Terminal Ready

    接线说明
    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针-9针 25针-25针 9针-25针
     2  3  3   2   2  2
     3  2  2   3   3  3
     5  5  7   7   5  7

    RS-232接口

      RS-232串行接口标准
      目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。
      图1
      收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平,DB25各引脚定义参见图1。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-
    展开全文
  • D-sub DB25接口面板开孔尺寸,在网上搜了很久找到的尺寸,自己画的CAD DWG格式。肯定是可以用,已经在产品上使用了。
  • 因此常见的计算机并口即为DB25针的连接器。而串口则应为DE9针连接器。 标准DB9九针串口线分为公头和母头,公头的引脚号是从左往右定义,母头是从右往左定义,这样公头母头对接时,相同的引脚号才对应 实物图 ...

    接口定义

    按照接口数量细分为A型(15针),B型(25针),C型(37针),D型(50针),E型(9针)。因此常见的计算机并口即为DB25针的连接器。而串口则应为DE9针连接器。

    标准DB9九针串口线分为公头和母头,公头的引脚号是从左往右定义,母头是从右往左定义,这样公头母头对接时,相同的引脚号才对应

     

    实物图

     

     

    DB9 各引脚定义

    1   DCD 载波检测

    2   RX 接收数据

    3   TX 发送数据

    4   DTR 数据终端准备好

    5   GND 地信号

    6   DSR 数据准备好

    7   RTS 请求发送

    8   CTS 清除发送

    9   RI 振铃提示

     

    RS232 DB9

    RS232常用的是Rx、Tx和GND这三条线 也就是 2-RX 3-TX 5-GND引脚,RS232是全双工;

     

    RS232的DB-9接口的连接线包括三种:公对母,公对公,母对母。这三种连接线都分别有交叉线和直连线,所以总共有6中连接方式。

    直通和交叉的区别:用万用表测一下,如果2和2通,3和3通则为直连串口线;如果2和3通,3和2通则为交叉串口线。

     

    RS485 DB9

    RS485 是双绞线A和B。没有接线标准,通常是3-A,8-B,公头母头都是如此,通信双方接线直连,A接A,B接B。RS485是半双工。

     

    其他

    由于RS485是半双工的,如果使用两对RS485差分线就可组成全双工通信(一对线只接收,一对线只发送),这就是RS422标准了。

    展开全文
  • RS-232C接口定义(DB9) 引脚 定义 符号 1 载波检测 DCD(Data Carrier Detect) 2 接收数据 RXD(Received Data) 3 发送数据 TXD(Transmit Data) 4 数据终端准备好 DTR(Data Terminal Ready) 5 信号地 SG...
    RS-232C接口定义(DB9)
     
    引脚  定义  符号
    1  载波检测  DCD(Data Carrier Detect)
    2  接收数据  RXD(Received Data)
    3  发送数据  TXD(Transmit Data)
    4  数据终端准备好  DTR(Data Terminal Ready)
    5  信号地  SG(Signal Ground)
    6  数据准备好  DSR(Data Set Ready)
    7  请求发送  RTS(Request To Send)
    8  清除发送  CTS(Clear To Send)
    9  振铃提示  RI(Ring Indicator)
    
    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 
    

    展开全文
  • DB9 1,RS232 (DB9)引脚定义 1 :DCD :载波检测。主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音, 处于在线状态。 2 :RXD:此引脚用于接收外部设备送来的数据;在你使用Modem时,你会发现RXD指示...
  • RS232 DB9 计算机接口定义

    千次阅读 2016-04-27 13:18:57
    DB9和DB25的常用信号脚说明;RS232接口针脚定义(2008-08-20 16:24:21) 标签:杂谈 分类:电子专业 9针接口针脚定义 Pin 1 Received Line Signal Detector (Data 说明:实际开发接口...
  • OLE DB 访问接口 "SQLNCLI" 返回了消息

    千次阅读 2014-07-14 16:51:13
    OLE DB 访问接口 "SQLNCLI" 返回了消息--转  (2009-02-25 20:08:02) 转载▼ 标签:  杂谈 分类: SQLSERVER开发 这个月总公司收购了一家小公司,这家小公司的数据库用的...
  • 关于DB9和DB25

    2019-05-10 11:06:30
    一 引脚定义 https://blog.csdn.net/qiudechao1/article/details/83473619 二 公母封装 ... 三 布局要求 一般来说,接插件需要靠近板边并且接口往板外,千万不能太靠近板内,以至于连接线端的插头被...
  • 电脑上常见的DB接口定义

    千次阅读 2011-11-26 10:51:26
    D型数据接口连接器,用于连接电子设备(比如:计算机与外设)的接口标准。...由于早期的计算机的串口与并口都是使用DB25针连接器,而人们则习惯把字母B与D合在一起记了下来,当作D型接口的共同名字,以
  • DB9和DB25的常用信号脚说明;RS232接口针脚定义(2008-08-20 16:24:21) 标签:杂谈 分类:电子专业 9针接口针脚定义 Pin 1 Received Line Signal Detector (Data 说明:...
  • DB9针和DB25针串口的引脚定义

    万次阅读 2018-10-28 12:46:26
    串口的连接线受很多的限制,最典型的限制就是接口类型和连接线的作用,因为接口类型不同,则接口引脚不一样;连接线的作用不同,则线序不一样。要知道串口线的制作,首先要知道串口引脚的定义,然后根据串口连接线的...
  • 常用接口定义02——DB与DR系列端口

    千次阅读 2015-11-04 11:55:36
    DB系列与DR系列端子是设计PCB时经常会遇到的,直到前两天才专门找时间总结了一下两个系列接口的区别并从淘宝上找到实物图与之对应。...4.DB25                 DR系列: 1.DR15(三排)   2.DR15(双排)
  • DB2 Log 2-25

    2007-02-25 12:47:00
    搞这类接口式的开发其实挺痛苦的,因为一个接口很可能又用到另外一个,挺麻烦的.而且发现一个问题,即使是IBM提供的C++示例也不过是加入了类、和几个cout,根本没有用到标准库。 搞开发的确是需要耐心的,对于我这种...
  • 什么是RS232接口

    2020-11-18 17:17:56
    DB25的串口一般只用到的管脚只有2(RXD)、3(TXD)、7(GND)这三个,随着设备的不断改进,现在DB25针很少看到了,代替他的是DB9的接口,DB9所用到的管脚比DB25有所变化,是2(RXD)、3(TXD)、5(GND)这三个。...
  • RS232接口

    千次阅读 2013-06-07 12:44:46
    RS232接口 RS232接口是1970年由美国电子工业协会(EIA)联合... 该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。随着设备的不断改进,出现了代替DB25的D
  • 其中PC机使用A型接头,DB-25孔型插座,包括17条信号线和8条地线,信号线又分为3组,控制线4条,状态线5条,数据线8条。 打印机使用B型接头,为36PIN 0.085inch间距的Champ连接器,称Centronics连接器 36PIN ...
  • ASI接口

    2015-03-06 08:33:00
    Asynchronous Serial Interface ,异步串行接口...SPI一共有11位有用信号,每位信号差分成两个信号用来提高传输抗干扰性,在物理链接上用DB25传输,因此连线多且复杂,传输距离短,容易出现故障。但SPI是并行11位信号...
  • rs232接口定义

    2011-08-30 19:29:00
    概述RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备...随着设备的不断改进,出现了代替DB25的DB9接口,...
  • 计算机硬件接口

    2017-04-29 11:58:36
    D型数据接口连接器,用于连接电子设备(比如:计算机与外设)的接口标准。因形状类似于英文字母D,故得名D型接口...由于早期的计算机的串口与并口都是使用DB25针连接器,而人们则习惯把字母B与D合在一起记了下来,当作D
  • 各种接口

    2012-09-02 20:13:00
    一、DB9与DB25 九针串口 串口是计算机主要的外部接口之一,通过九针串口连接的设备有很多,像串口鼠标、MODEM、手写板等等,九针串口的示意图如上,其各脚的定义如下: 1 DCD 载波检测 2 RXD 接收数据 3 ...
  • MKL25Z128+EM4095 蓝牙接口RFID读卡器ALTIUM设计硬件原理图+PCB+封装库文件,2层板设计,大小为39*107mm, 包括完整的原理图PCB和封装库文件,可以做为你的学习设计参考,主要器件如下: Library Component Count : 28...
  • 然后,写入成功/失败的响应将传递到AMQP代理,最终还将写入一条记录,以表示已对postgres DB进行了请求(也可以通过REST接口查询)。 然后,用户可以查询商店,以请求包含给定元素和/或值的所有JSON文档。 样本...
  • RS-485总线相关问题

    千次阅读 2016-12-16 16:32:05
    RS-232/485/422总线概述 EIA 232-D协议是美国电子工业协会于1987制定,在于1969年制定的EIA 232-C协议... RS-232接口有DB25接口和DB9接口两种,现在普通使用的基本上都是DB9接口,DB25接口基本上不再使用,DB9接

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 545
精华内容 218
关键字:

db25接口