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

标签 c serial-port lpt

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

我想从计算机上运行的 C 程序向这台机器发送十六进制数据。计算机和机器通过打印机端口连接。

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

提前致谢。

最佳答案

首先,澄清一下:

串行通信是一种使用所有(大部分)引脚的协议(protocol)。一些引脚用于同步两个通信芯片。但实际数据是通过一个数据 PIN 发送的,一次一位。

另一方面,并​​行通信是一种使用 8 个数据引脚一次同时通信一个字节的协议(protocol)。打印机端口通常是并行端口。

取决于操作系统:

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

在 Linux 上比在 Windows 上更容易。

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

对于 Windows 上的并行端口:

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

对于 Linux 上的串口:

参见 code from this answer还有这个Serial HOWTO (for Linux)

关于c - 如何使用 C 通过串行端口将十六进制数据发送到自定义仪器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14474844/

相关文章:

c# - Windows 监控并行或 LPT 端口

c++ - LPT POS 打印机备用进纸

c - gcc 链接器不链接 debian 7.4 wheezy 32 位、gnome 3.4.2 下的程序

C 编程。仅使用数组和指针生成随机字母字符串的函数

python - 只能通过串口读取一个字节

serial-port - 自动检测串口的配置?

C# LPT inpout32.dll

python - 多线程prange循环抛出 "double free or corruption (fasttop)"错误

c - 如何在C中创建文件夹(需要在Linux和Windows上运行)

c++ - 串口不接受波特率