Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打开串行端口ANSI C_C_Windows_Serial Port - Fatal编程技术网

打开串行端口ANSI C

打开串行端口ANSI C,c,windows,serial-port,C,Windows,Serial Port,我在谷歌上搜索了过去几个小时(几天),找到了一个简单的工作示例,说明如何在Windows上用ANSI C打开串行端口。我试图打开一个txt文件,并将其逐字符发送到串行端口。(如果您能给我一个提示,告诉我如何以1秒的延迟一个字符一个字符地发送,我也会很高兴!)这是我的代码,但不知何故它不起作用:( C标准不知道串行端口。您的问题是Windows特定的。也许您想 fp = open("COM1:", O_RDWR | O_NOCTTY | O_NDELAY); i

我在谷歌上搜索了过去几个小时(几天),找到了一个简单的工作示例,说明如何在Windows上用ANSI C打开串行端口。我试图打开一个txt文件,并将其逐字符发送到串行端口。(如果您能给我一个提示,告诉我如何以1秒的延迟一个字符一个字符地发送,我也会很高兴!)这是我的代码,但不知何故它不起作用:(


C标准不知道串行端口。您的问题是Windows特定的。也许您想

         fp = open("COM1:", O_RDWR | O_NOCTTY | O_NDELAY);
         if (fp<0) perror("open COM1:");
fp=open(“COM1:,O_RDWR | O_NOCTTY | O|NDELAY”);

如果(fp我认为您编写的代码在Windows中不起作用,除非您使用的是我不知道的POSIX库。否则,您必须使用用于串行通信的Windows API函数

所有文档和一些示例都可以在Microsoft的文档网站上找到

Windows将串行端口视为文件。您可以使用CreateFile()打开它们,并使用ReadFile()和WriteFile()进行读/写操作。此外,还可以使用各种函数设置波特率、握手、超时等


如何做到这一点是一个相当大的话题,但至少MSDN上的信息应该让您开始。

缺少问题的
Windows
标签!您可能不想在循环的每次迭代中打开串行端口。
fprintf(fp,c)
也大错特错。是的,我怀疑这是LINUX,这就是为什么我要问如何在Windows中正确地完成它^^
         fp = open("COM1:", O_RDWR | O_NOCTTY | O_NDELAY);
         if (fp<0) perror("open COM1:");