我正在通过C程序从RS 485端口通过以下代码从设备连续读取数据。由于某种原因,获得的数据不是设备中的最新数据。我读数据时没有反映数据的变化,它给了我旧的价值。几分钟后,我得到了改变的价值(因为我不断阅读)。如果我通过Pytty读取相同的设备,我会立即获得更新的值。所以我的代码中肯定存在一些问题,尽管我无法弄明白。任何帮助都会很棒!
static int load_serial_port(char *port) //port is 485, port="/dev/ttyS2"/
{
int fd = 0;
fd = open (port, O_RDWR);
if (fd < 0) {
log_error("SerialPort opening failed.");
return -1;
}
struct serial_rs485 rs485conf;
/* Enable RS485 mode: */
rs485conf.flags |= SER_RS485_ENABLED;
/* Set logical level for RTS pin equal to 1 when sending: */
rs485conf.flags |= SER_RS485_RTS_ON_SEND;
/* or, set logical level for RTS pin equal to 0 when sending: */
rs485conf.flags &= ~(SER_RS485_RTS_ON_SEND);
/* Set logical level for RTS pin equal to 1 after sending:
本文发布于:2024-01-31 13:14:04,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170667804728780.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |