如何使用C将十六进制数据通过串口发送到自定义仪器?

时间:2013-01-23 07:56:08

标签: c serial-port lpt

我有一台机器(仪器)可以从串口或打印机的8个引脚分别读取十六进制数字。

我想将计算机上运行的C程序中的十六进制数据发送到此计算机。计算机和机器通过打印机端口连接。

请告诉我如何从每个引脚分别发送数据。

先谢谢。

1 个答案:

答案 0 :(得分:0)

首先,澄清一下:

串行通信是一种使用所有(大多数)引脚的协议。一些引脚用于同步两个通信芯片。但实际数据是从一个数据密码发出的,一次一个BIT。

另一方面,并​​行通信是一种协议,它使用8个DATA PIN一次同时传送一个BYTE。打印机端口通常是并行端口。

取决于操作系统:

如何通过这些端口之一从程序发送数据取决于您的操作系统。

在Linux上比在Windows上更容易。

对于Windows,它有点复杂,因为Windows在用户模式下(即通过用户程序)限制端口访问。

对于Windows上的并行端口:

但是,对于Windows,我已经成功地从并行端口using the io.dll provided here on Geek Hideout驱动了LED。 io.dll包中包含一个.dll和一个.h头文件,记录了C程序可以使用的函数。

对于Linux上的串行端口:

请参阅code from this answer和此Serial HOWTO (for Linux)