【发布时间】:2011-05-31 21:36:38
【问题描述】:
我正在浏览 FTDI 网站上的示例代码。打开设备并将流控制设置为RTS/CTS后,它们以以下方式发送和接收数据:
' Set RTS
FT_Status = FT_SetRts(FT_Handle)
If FT_Status <> FT_OK Then
Exit Sub
End If
' Set DTR
FT_Status = FT_SetDtr(FT_Handle)
If FT_Status <> FT_OK Then
Exit Sub
End If
' Write string data to device
FT_Status = FT_Write_String(FT_Handle, TextBox4.Text, Len(TextBox4.Text), BytesWritten)
If FT_Status <> FT_OK Then
Exit Sub
End If
Sleep(100)
' Get number of bytes waiting to be read
FT_Status = FT_GetQueueStatus(FT_Handle, FT_RxQ_Bytes)
If FT_Status <> FT_OK Then
Exit Sub
End If
' Read number of bytes waiting
TempStringData = Space(FT_RxQ_Bytes + 1)
FT_Status = FT_Read_String(FT_Handle, TempStringData, FT_RxQ_Bytes, BytesRead)
If FT_Status <> FT_OK Then
Exit Sub
End If
' Close device
FT_Status = FT_Close(FT_Handle)
If FT_Status <> FT_OK Then
Exit Sub
End If
基本上他们设置RTS,DTR,然后将数据写入设备。
这是正确的吗?如果我向设备发送了多次,我是否需要每次都清除 RTS?然后再设置高?还是每次发送新数据时都将其设置为高?如果流控制被定义为 RTS/CTS,他们为什么要设置 DTR?
就最佳实践而言,这是最好的读写方式吗?
【问题讨论】:
标签: .net vb.net embedded serial-port