2016-02-05 52 views
0

所以..我使用這段代碼來讀取來自powertek pa4400a的一些信息,有時我可以毫無問題地閱讀它,但有時我會得到奇怪的答案。我甚至無法理解字符的含義。串口歪曲的答案

QSerialPort asd; 
asd.setBaudRate(QSerialPort::Baud19200); 
asd.setDataBits(QSerialPort::Data8); 
asd.setFlowControl(QSerialPort::NoFlowControl); 
asd.setParity(QSerialPort::NoParity); 
asd.setStopBits(QSerialPort::OneStop); 
asd.setPortName("ttyUSB0"); 
asd.open(QSerialPort::ReadWrite); 
asd.write(com); 
asd.waitForReadyRead(10000); 
QString ans = asd.readAll(); 

俺們字符串應該是這樣的:

"00.00E+0; 00.00E+0;+00.00E+0; 00.00E+0; 000:00:00;<<END OF DATA>>" 

但我得到這樣的事情:

"\xFB" 

或任何其他的東西,是不正確的。

我確實得到了正確的答案很多次,但發生了一些事情,我再也看不到這些信息。

+0

你沒有做任何明顯的錯誤,但我沒有使用任何'waitForXxx'方法的僞同步代碼的良好經驗。看看你是否可以使用[這個答案](http://stackoverflow.com/a/32595398/1329652)的方法來實現你的命令和響應系統。這是什麼平臺? –

+0

Windows,但問題出在流量控制。我切換到HardwareControl,現在它正在工作。 – Alex

回答

1

這裏的問題是我發送命令的機器正在使用HardwareControl,但是我使用了NoFlowControl,並且弄錯了我的答案。