我想知道如果我将这些放入代码中,计算机是否会向设备发送任何类型的信号?
SerialPort myport = new SerialPort("COM1");
myport.DtrEnable = true;
myport.RtsEnable = true;
我需要在特定引脚上向设备发送信号。据我所知,Dtr和Rts使用引脚4和7。那么当我编写上面的代码时,我的计算机会在引脚4和7上发送信号吗?或者有没有一种简单的方法可以在特定引脚上发送信号?
当然,这些属性控制握手信号的状态。他们的用途是not任意的,正确设计的串行端口设备都会关注它们。 DTR 是数据终端就绪,通常连接到设备上的 DSR(数据集就绪)。当 DSR 关闭时,设备假定您的计算机根本没有打开或电缆已断开。当信号关闭时,它不会发送任何内容并忽略您发送给它的任何内容。
RTS 是请求发送,通常连接到设备上的 CTS(清除发送)。通常用于流量控制,防止设备发送过多数据而导致接收缓冲区溢出。这是一个很难恢复的严重问题,数据完全丢失。
通常应将 SerialPort.Handshake 属性设置为 HandShake.RequestToSend,以便驱动程序自动执行此操作。一个非常常见的错误是将其设置为 Handshake.None,现在您have自己打开这些信号。当然,您将面临缓冲区溢出的风险,尽管您必须编写非常慢的代码才能进入危险区域。它已经完成。
这些信号可用于业余爱好项目来控制簧片继电器等。请注意,信号线上的电压是不可预测的(在 +/- 5 至 24 伏之间波动),并且无法提供大量电流(通常最大 20 毫安)。您至少需要一个二极管(通常是晶体管)来切换较重的负载。请访问 electronics.stackexchange.com 进行询问
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)