Serial read is blocking
-
I'm running a serial connection to a sensor wired as simplex. The code runs fine when the sensor is there. I wanted to turn the LED yellow if the serial read times out and returns no data, but the read function is blocking. It just sits there indefinitely.
I am playing around with
char buff = {0};
int fd;fd = open("/dev/ttyS1", O_RDONLY | O_NOCTTY | O_NONBLOCK);
struct termios config;
tcgetattr(fd, &config);
config.c_iflag &= ~(IGNBRK | BRKINT | ICRNL |INLCR | PARMRK | INPCK | ISTRIP | IXON);
config.c_oflag = 0;
config.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG);
config.c_cflag &= ~(CSIZE | PARENB);
config.c_cflag |= CS8;
config.c_cc[VMIN] = 0;
config.c_cc[VTIME] = 10;
cfsetispeed(&config, B57600);
cfsetospeed(&config, B57600);
tcflush(fd, TCIOFLUSH);
tcsetattr(fd, TCSANOW, &config)ret = read(fd, &buff, 1);
if (ret<=0) {
status_yellow();
} -
Hi @Andrew-Keefe,
I'm not positive on this one. I have an example of using UART for an ESC here, and I remember having to be careful what task was opening the UART port:
px4-firmware/src/drivers/uart_esc/modalai_esc/modalai_esc.cpp at modalai-1.11 · modalai/px4-firmware
PX4 Autopilot Software. Contribute to modalai/px4-firmware development by creating an account on GitHub.
GitHub (github.com)
Here's opening of the port (note: this is beta level code)
px4-firmware/src/drivers/uart_esc/modalai_esc/modalai_esc_serial.cpp at modalai-1.11 · modalai/px4-firmware
PX4 Autopilot Software. Contribute to modalai/px4-firmware development by creating an account on GitHub.
GitHub (github.com)
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login