gpt4 book ai didi

c - C语言串口通信

转载 作者:行者123 更新时间:2023-11-30 19:45:23 26 4
gpt4 key购买 nike

我刚刚开始编写一个应用程序来通过串行端口控制 SimCOM。但我无法从串口接收数据。这是我的程序。

/*Sending command*/
char cmd[80] = "ATD";
char number[80];
printf("Calling: \n");
printf("Input your phone number:");
scanf("%s",number);
char signal[80]= ";\r\n";
strcat(cmd,number);
strcat(cmd,signal);
printf("%s",cmd);
int nWritten = write(fd, &cmd,sizeof(cmd));

我无法正确读取数据。否则以相同的波特率发送数据是可以的 /读取数据响应/

    int n = 0;
char buf[1];
char response[256];

do
{
n = read(fd, &buf, 1 );
strcat(response,buf);
}
while( buf[1] != '\r' && n > 0);


printf("%s \n", response);

这是我的程序的开放部分

struct termios options;

int fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);
if(fd==-1){
printf("Cannot open serial port\n");
}
else printf("Serial port: open.\n");


/*config serial port*/
tcgetattr(fd, &options);

cfsetispeed(&options, B9600);
cfsetospeed(&options, B9600);


options.c_cflag &= ~PARENB; //no parity
options.c_cflag &= ~CSTOPB; //one stop bit
options.c_cflag &= ~CSIZE; // size
options.c_cflag &= CS8; // 8 bit

最佳答案

您还没有发布程序的 open() 部分。在不设置波特率等参数的情况下,不能简单地使用read()从串口读取数据。 Here is Linux 文档项目中的一个很好的示例可能会有所帮助

关于c - C语言串口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26521434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com