我想知道如果我把这些放在我的代码中,计算机是否会向设备发送任何信号?
SerialPort myport = new SerialPort("COM1");
myport.DtrEnable = true;
myport.RtsEnable = true;
Run Code Online (Sandbox Code Playgroud)
我需要在特定引脚上向设备发送信号.据我所知,Dtr和Rts使用引脚4和7.所以当我写上面的代码时,我的电脑会在引脚4和7上发送信号吗?或者有一种简单的方法在特定引脚上发送信号?
当然,这些属性控制握手信号的状态.它们的使用并不是随意的,一个设计合理的串口设备会引起人们的注意.DTR是数据终端就绪,通常连接到设备上的DSR(数据集就绪).当DSR关闭时,设备假定您的计算机没有打开或电缆断开.当信号关闭时,它不会发送任何内容并忽略您发送给它的任何内容.
RTS是请求发送,通常连接到设备上的CTS(清除发送).通常用于流量控制,它可以防止设备发送过多数据并溢出接收缓冲区.一个非常难以恢复的令人讨厌的问题,数据完全丢失了.
您通常应将SerialPort.Handshake属性设置为HandShake.RequestToSend,以便驱动程序自动执行此操作.一个非常常见的错误是将其设置为Handshake.None,现在您必须自己打开这些信号.当然,你会冒缓冲区溢出的风险,尽管你必须编写非常慢的代码才能进入危险区域.它已经完成.
这些信号可用于爱好项目中,以控制,例如,簧片继电器.请注意信号线上的电压是不可预测的(在+/- 5到24伏之间摆动)并且不能提供大量的放大器(通常最大为20毫安).您至少需要一个二极管,通常是晶体管来切换较重的负载.在electronics.stackexchange.com上询问