我的电路有8条输入线,电缆连接到计算机的串口。端口控制器并联配置。 (我不知道这意味着什么!电子工程专业的学生说这意味着“你必须异步使用信号,例如每个信号都可以独立于其他信号”)
现在我应该编写一个汇编代码,从文件读取一些输入,处理它们,然后设置数据线。我可以做前2个,但对端口没有任何想法。
你能给我一个起点吗?例如,如何初始化端口以及如何在汇编中设置PC串口上的数据线?
答案 0 :(得分:5)
我真的觉得你很困惑 - 很多。 RS 232是 serial 端口使用的协议。在其9引脚版本(DE-9)中,它有8条可用的数据线,但只有一半是输出引脚,你无法真正控制数据引脚,缺少通过它发送实际数据。除非您的设备包含带有串行接口的微控制器,否则我怀疑它是否适用于RS-232接口。
实际上,RS-232是80年代和90年代早期的一些打印机使用的连接,通常是点阵打印机。不幸的是,打印除ASCII文本之外的任何内容都太慢了,因此引入了parallel port,顺便说一下, 有8个输出行。 自<90年代以来,端口被称为“打印机端口”。在现代计算机中,您甚至可以分别控制并行端口的引脚,这就是为什么它被广泛用于电子设备 - 以及它使用5伏TTL接口这一事实比12V串行更容易处理港口使用。您也没有提到您的程序应该用于哪种操作系统,但如果您打算直接使用程序集访问该端口,则可能仅限于DOS或Windows 9x / Me。
那说:
答案 1 :(得分:0)
由于您没有指定使用VB.NET的语言或开发环境,所以这是一个使用VB.NET的示例:
Private WithEvents m_comport1 As IO.Ports.SerialPort
Private Sub Form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
m_comport1 = New IO.Ports.SerialPort("COM1")
AddHandler m_comport1.DataReceived, AddressOf Comport_DataReceived
End Sub
Private Sub SendData(p_data() As Byte)
m_comport1.Write(p_data, 0, p_data.Length)
End Sub
Private Sub SendData(p_data As String)
m_comport1.Write(p_data)
End Sub
Private Sub Comport_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs)
Dim bytesAvailable = m_comport1.BytesToRead
Dim tempData(bytesAvailable) As Byte
m_comport1.Read(tempData, 0, bytesAvailable)
End Sub