为什么TTYUSB0端口设置也会改变我的标准输出设置

时间:2014-06-16 20:12:07

标签: c++ linux serial-port usbserial

我有一个嵌入式Atmel ARM926板,我创建了一个usb串行ko来从FTDI获取数据作为USBtty0。该板还有一个串行端口DBGU,用作通常以230kb运行的控制台终端。当我将USBtty0端口配置为所需的115kb时,DBGU显然也会变为115kb。

if( m_fdELMdev = open(m_ELMdevice, O_RDWR | O_NOCTTY )< 0)  
{//error
}
else
{
// Configure the port
tcgetattr(m_fdELMdev, &dev_settings);
dev_settings.c_cflag |= B115200;
cfmakeraw(&dev_settings);
 }

有人可以告诉我,我可能做错了吗? 这是我的设备片段.tab

/dev/tty         c     640     0     0        4      0       0      1      4
/dev/tty         c     640     0     0        5      0       -      -      -
/dev/ttyGS       c     640     0     0      252      0       -      -      -
/dev/ttyS        c     640     0     0        4     64       0      1      3
/dev/watchdog    c     640     0     0       10    130       -      -      -
/dev/zero        c     640     0     0        1      5       -      -      -
/dev/ttyACM0     c     640     0     0      166      0       -      -      -
/dev/ttyUSB0     c     640     0     0      188      0       -      -      -

另外,我偶尔也会看到一些“中断系统调用”。从选择。我该如何处理这些?在获得一些数据之前,我是否重试选择?如果我从来没有得到任何数据怎么办?

enter code here
do
{
iret = select(m_fdELMdev + 1, &fdrefid, NULL, NULL, &porttime);
switch(iret)
{
case READ_TIMEOUT:
ierr = -1;
break;

case READ_ERROR:
g_dbg->debug("CACS_Elm327::Select error:%s (%d)\n",strerror(errno), errno);
ierr = -1; 
break;

default:
iret = read(m_fdELMdev, data, ilen);    
g_dbg->debug("CACS_Elm327::Readport_ELM:read %s %d\n", data, iret );
break;
}
}while((ierr == 0) && (iret<ilen) );      

0 个答案:

没有答案