2011-06-29 30 views
1

我需要通過vxworks中的串行端口發送數據。我正在使用下面的代碼。但 它不工作。任何人都指出哪裏出了問題?vxworks中的串行端口訪問不起作用

int f; 

if(f=open("/tyCo/1",O_RDWR,0)<0) 
{ 
    printf("Error opening serial port."); 
    return 1; 
} 

write(f,"hello",5); 

運行這個代碼後,沒有數據正在添加直通串行端口,而是涉及通 終端(龍捲風殼)。該系統有兩個串行設備/ tyCo/1和/ tyCo/0。我試了兩次,但問題依然存在。

非常感謝 Likhin。

回答

1

您是否設置了波特率?

if (iocl(m_fd, FIOBAUDRATE, rate)) == ERROR) 
{ 
    //throw error 
} 
0

有可能您使用的設備名稱錯誤,並且Tornado Shell設置爲您的默認設備。從vxdev.com

如果無法找到匹配的設備名稱,然後將I/O功能是針對 在默認設備。您可以將此默認設備設置爲 系統中的任何設備,包括根本不包含設備,在這種情況下,與設備名稱 名稱匹配的故障將返回錯誤。您可以使用 ioDefPathGet()獲取當前默認路徑。您可以使用ioDefPathSet()來設置默認路徑。

0

「打開」命令的第三個參數是,如果我沒有錯,模式。我不明白vxworks中需要什麼,除了與UNIX的代碼可比較性之外。在短期內給予像0644或0666一些價值。我認爲這將有所幫助。