我知道我们可以使用3号引脚在RS232中将数据作为输出发送。但我只是想知道,有没有另一种方法在短时间内只向RS232发送5v电压?我只想让那个5v触发一个PIC微控制器来做点什么。
提前谢谢你。
发布于 2011-03-08 07:59:12
您可以使用SerialPort类的DTREnable (数据终端就绪)属性将正电压应用于这些相应的引脚。这可以用来向MCU发出信号。
类似于……的东西
serialPort.DtrEnable = true; //High
currentThread.Sleep(1000);
serialPort.DtrEnable = false; //Low
currentThread.Sleep(1000);然而!的电压可能与不兼容,因为RS232的电压为-25至25伏,工作时间为1/0。您可能需要一个内联驱动器/接收器(如MAX232芯片)来在微处理器和计算机之间运行,或者根据您的技能水平,您可以构建一个接收器电路。
发布于 2011-03-08 07:33:18
只要不在PIC端使用RTS或DTR进行流控制,就可以使用它们
发布于 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)。
按如下方式传输数据:
serialPort1.Open();
serialPort1.Write("your data in here");以推拉形式接收数据:
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;
https://stackoverflow.com/questions/5226580
复制相似问题