2010-06-21 49 views
0

我使用C語言和Linux作爲我的編程平臺。我在設置串口(/ dev/ttyS0)時遇到了問題。在我的小程序,我將我的串行使用端口tcgetattr和tcsetattr無法檢測到串口發送的第一個數據

options.c_cflag |= B115200; 
options.c_cflag &= ~PARENB; 
options.c_cflag &= ~CSTOPB; 
options.c_cflag &= ~CSIZE; 
options.c_cflag &= ~CRTSCTS; 
options.c_cflag |= CS8; 
options.c_cflag |= (CLOCAL | CREAD); 
options.c_iflag &= ~(IXON | IXOFF | IXANY); 

我的問題是,我的應用程序沒有得到我發送的第一個數據。我錯過了一些價值嗎?

謝謝。

+0

你能帶一個能再現這種行爲的最小樣本嗎?我個人不知道這是否可以解決。 – INS 2010-06-21 11:19:45

回答

0

是否有可能您的應用程序獲得了您發送它的第一件東西,但它在連接/設置開始時有垃圾並且未正確解析?

你可以嘗試在初始化之後刷新串口,或者在初始化之後發送CR/LF,以便在發送到應用程序之前查看是否清除了內容。