首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向RS232发送电压

向RS232发送电压
EN

Stack Overflow用户
提问于 2011-03-08 07:27:21
回答 3查看 6.4K关注 0票数 2

我知道我们可以使用3号引脚在RS232中将数据作为输出发送。但我只是想知道,有没有另一种方法在短时间内只向RS232发送5v电压?我只想让那个5v触发一个PIC微控制器来做点什么。

提前谢谢你。

EN

回答 3

Stack Overflow用户

发布于 2011-03-08 07:59:12

您可以使用SerialPort类的DTREnable (数据终端就绪)属性将正电压应用于这些相应的引脚。这可以用来向MCU发出信号。

类似于……的东西

代码语言:javascript
复制
serialPort.DtrEnable = true; //High
currentThread.Sleep(1000);
serialPort.DtrEnable = false; //Low
currentThread.Sleep(1000);

然而!的电压可能与不兼容,因为RS232的电压为-25至25伏,工作时间为1/0。您可能需要一个内联驱动器/接收器(如MAX232芯片)来在微处理器和计算机之间运行,或者根据您的技能水平,您可以构建一个接收器电路。

票数 3
EN

Stack Overflow用户

发布于 2011-03-08 07:33:18

只要不在PIC端使用RTS或DTR进行流控制,就可以使用它们

票数 2
EN

Stack Overflow用户

发布于 2012-11-14 19:28:32

具有TTL接口的PIC微控制器使用逻辑如下:

逻辑1 == 5伏

逻辑0 == 0伏。

具有RS232接口的计算机使用逻辑如下:

逻辑1 == -3伏直到-25伏。

逻辑0 == 0至25伏。

为了连接器件的时序逻辑和RS232逻辑,可以使用MAX232 IC。MAX232会将你的TTL逻辑转换成RS232逻辑。

另一种选择-更便宜和简单,用于将逻辑转换为RS232逻辑的晶体管,反之亦然,请查看http://www.kmitl.ac.th/~kswichit/ap275/ap275.htm了解详细信息。

如果需要发送数据而不需要硬件握手,只需要引脚2 (RX),引脚3(TX),引脚5(GND)。如果需要握手,则添加引脚7(RTS)和引脚8(CTS)。

按如下方式传输数据:

代码语言:javascript
复制
serialPort1.Open();
serialPort1.Write("your data in here");

以推拉形式接收数据:

代码语言:javascript
复制
public Form1()
{
    InitializeComponent();
    this.serialPort1.DataReceived += new SerialDataReceivedEventHandler(this.serialPort1_DataReceived);
    serialPort1.Open();
}

void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    int i = 0;
    string[] DataReceived; 

    while (serialPort1.BytesToRead > 0) 
    {
        DataReceived[i] = Convert.ToByte(serialPort1.ReadByte()); // data already in here
        i++;         

        if (i == int.MaxValue-1)
          i = 0;            
    }
    // Parsing your data in here
}

如果只需要切换输出,则使用引脚4 (DTR) pint7(RTS)。

serialPort1.DtrEnable = true;serialPort1.RtsEnable = true;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5226580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档