串口“读”操作不工作
问题描述:
我想读通过串口但读操作的数据总是返回0。串口“读”操作不工作
// Opening COM port and m_fd returned a valid number
m_fd = open (m_com_port, O_RDWR | O_NOCTTY | O_SYNC);
//Read operation
length = read(m_fd, &ch, 1); // length is always zero
setserial -g /tmp/xdl/serial/com_7
# /tmp/xdl/serial/com_7, UART: undefined, Port: 0x0000, IRQ: 45
可以将某些有一点我在做什么错误,为什么setserial的命令给出undefined
答
您的BUFFER_SIZE可能太小,它必须提供足够大的缓冲区。
BUFFER_SIZE是读取函数的第三个参数。
+0
我试图读一个字符 \t unsigned int length; \t unsigned char ch; \t \t length = read(m_fd,&ch,1) – Sijith
+0
什么是您的linux串行驱动程序? –
你试过用其他程序读你的串口吗?它工作吗? 您确定该串口线上有流量吗? – Federico
我试着echo'Hello'>/tmp/xdl/serial/com_7,它工作正常。 – Sijith
'echo'Hello'>/tmp/xdl/serial/com_7'是一个写操作,因此您不会在其他程序中再现您的问题。尝试'cat','hexdump','minicom'为了*阅读*就像你的例子 – Federico