Csharp/C#教程:向RS232发送电压分享


向RS232发送电压

我知道我们可以使用3号引脚将数据作为输出发送到RS232。 但我只是想知道还有另一种方法只能在短时间内将电压5v发送到RS232? 我只想让5v触发PIC微控制器来做某事。

先感谢您。

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

有点……

serialPort.DtrEnable = true; //High currentThread.Sleep(1000); serialPort.DtrEnable = false; //Low currentThread.Sleep(1000); 

然而! 电压很可能是不相容的,因为RS232工作-25到25伏,1/0。 您可能需要内置驱动器/接收器(如MAX232芯片)在MCU和计算机之间运行,或者根据您的技能水平构建接收器电路。

只要不在PIC侧使用RTS或DTR进行流量控制,就可以使用RTS或DTR

带有TTL接口的PIC单片机使用如下逻辑:
逻辑1 == 5伏。
逻辑0 == 0伏。

带RS232接口的计算机使用逻辑如下:
逻辑1 == -3伏直到-25伏。
逻辑0 == 0直到25伏。

对于连接设备TTL逻辑到RS232逻辑可以使用MAX232 IC 。 MAX232将您的TTL逻辑转换为RS232逻辑。

另一个选项 – 更便宜和简单,使用TRANSISTOR将TTL逻辑转换为RS232逻辑,反之亦然,详见https://www.kmitl.ac.th/~kswichit/ap275/ap275.htm 。

如果需要在没有硬件握手的情况下发送数据 ,只需要引脚2(RX)引脚3(TX)引脚5(GND) 。 如果需要握手 ,请添加引脚7(RTS)引脚8(CTS)
传输数据如下:

 serialPort1.Open(); serialPort1.Write("your data in here"); 

接收数据为dollows:

 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) 品脱7(RTS)。
serialPort1.DtrEnable = true; 或者serialPort1.RtsEnable = true;

上述就是C#学习教程:向RS232发送电压分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1005072.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐