向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