1. FTDI

USB2.0 - RS232

其接口 Type A - Male DB9

2. Female && Male

3. 接口定义

在开发的时候,经常会用到串口,请求发送地线数据准备好振铃之时数据终端准备接收数据发送数据

在使用RS232接口的设备中,尽管通常2号(接收数据,RX)、3号(发送数据,TX)和5号(信号地,GND)针脚是进行基本通信所必需的,但在某些情况下,其他针脚的作用也可能变得重要。

当你提到在扫码枪中接上1号针脚(DCD,数据载波检测)后能够正常读取数据,这意味着扫码枪或连接的系统可能使用了DCD信号来确认数据通信的准备状态。在某些串行通信协议中,DCD信号被用来指示另一端设备已经准备好发送或接收数据。如果设备或其驱动程序配置为检查DCD信号状态,未连接或不正确的DCD线路可能会导致通信失败。

4. Notice:

  1. 接线的时候,主接2,3,5。但有时候通信并不成功,需要看看别的引脚是否需要相接。
  2. 若串口端有数据出现,但是数据格式并不对,问题可能出现在代码端和通信设置。
  3. 扫码得到数据的时候,通信波特率不宜设置过大,9600即可,若设置115200,传输位率过大,容易造成数据丢失,具体表现为数据部分乱码。

5. 代码示例

# include <Arduino.h>

# define RS485_RE_DE_PIN 20                       // 用于控制接收和发送使能的引脚

String scan_data;

void setup() 
{

    Serial.begin(9600);                           // 用于与PC通信的串口
    while(!Serial);

    pinMode(RS485_RE_DE_PIN, OUTPUT);
    digitalWrite(RS485_RE_DE_PIN, LOW);           // 初始设为接收模式

    Serial1.begin(9600);                          // 用于与RS-485通信的串口
    Serial.println("Hello ScanGun1! ");

}

void loop() 
{

    if(Serial1.available())
    {
        scan_data = readScanData();
        Serial.print("扫码结果:");
        Serial.println(scan_data);
    }

}

String readScanData() 
{
    String scandata;
    digitalWrite(RS485_RE_DE_PIN,LOW);
    while(Serial1.available())
    {  
        scandata = Serial1.readString();     
    }

    return scandata;

}

易碎

易碎

我看到的今夜的星空,是几万年前的光,我眼中的你是此时的你!

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注

网站ICP备案皖ICP备2024045222号-1