用c语言创建两个串口能够互相通信
时间: 2024-11-25 21:10:36 浏览: 9
在C语言中,我们可以使用POSIX或Windows API(具体取决于操作系统)来创建和管理串口。以下是一个基本的例子,展示了在Linux环境下使用`stdio.h`库(适用于TTY设备,不是标准的串口通信)创建两个进程进行简单的交互:
```c
#include <stdio.h>
#include <unistd.h>
// 进程1发送数据
void send_data(char* data) {
FILE* fd;
if ((fd = fopen("/dev/ttyUSB0", "w")) == NULL) {
perror("Failed to open serial port");
return;
}
fprintf(fd, "%s\n", data);
fclose(fd);
}
// 进程2接收并打印数据
void receive_and_print() {
char buffer[100];
FILE* fd;
if ((fd = fopen("/dev/ttyUSB0", "r")) == NULL) {
perror("Failed to open serial port");
return;
}
fgets(buffer, sizeof(buffer), fd);
printf("Received: %s\n", buffer);
fclose(fd);
}
int main() {
// 启动接收进程
pid_t receiver_pid = fork();
if (receiver_pid == 0) {
receive_and_print();
exit(0);
}
// 父进程等待接收进程结束后发送数据
wait(NULL);
// 发送数据
send_data("Hello from process 1");
return 0;
}
```
注意:这只是一个基础示例,实际应用中需要考虑错误处理、线程同步等问题,并可能需要使用更专业的串口库,如Linux下的`termios.h`或Windows下的WinAPI。
阅读全文