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