[問題] RS232
小弟現在寫了一支,利用RS232讓兩塊板子互相溝通的程式
下面是我的程式碼
#include <stdlib.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <limits.h>
#define SERIAL_PORT "/dev/ttyS1"
#define BAUD_RATE B115200
int main()
{
int fd, end_of_comm=1;
struct termios termios_current, termios_new;
/* Open Serial Port */
if( (fd = open(SERIAL_PORT, O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0 ) {
/* Check Port Name */
printf("Error when open serial port file:%s\n", SERIAL_PORT);
return 0;
}
tcgetattr(fd, &termios_current);
/* Setup Serial Port */
bzero(&termios_new, sizeof(termios_new)); // Clear Setting
cfmakeraw(&termios_new);
termios_new.c_cflag = BAUD_RATE; // Baud Rate
termios_new.c_cflag |= CLOCAL | CREAD;
termios_new.c_cflag &= ~CSIZE;
termios_new.c_cflag |= CS8; //
8bit
termios_new.c_cflag &= ~PARENB; // no parity
bit
termios_new.c_cflag &= ~CSTOPB; // no stop
bit
tcflush(fd, TCIFLUSH);
/* Set to Hardware Register */
tcsetattr(fd, TCSANOW, &termios_new);
/* Start Communication */
while (end_of_comm) {
int rec;
char buf[129];
rec = read(fd, buf, 128);
buf[rec] = '\0';
printf("Recv: %s\nSent: ", buf);
scanf("%s", buf);
rec = write(fd, buf, strlen(buf));
if ( buf[0] == '%' ) end_of_comm = 0;
}
tcsetattr(fd, TCSANOW, &termios_current);
return 0;
}
但是,兩塊板子用跳線連接後,並不如預期中的能互相傳送東西
請問各位大大們,能幫幫我嗎??我不知道問題是出在哪
兩塊板子都是執行這支程式!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.129.20.96
推
11/08 23:39, , 1F
11/08 23:39, 1F
→
11/08 23:42, , 2F
11/08 23:42, 2F
→
11/08 23:43, , 3F
11/08 23:43, 3F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章
21
65