无法将数据发送到串口

时间:2018-09-18 10:48:19

标签: ruby arduino serial-port

我正在尝试通过串行端口将数据发送到Arduino。这是我的Ruby代码:

sp = SerialPort.new("COM4",115200,8,1)
sp.sync = true
framing_array = [0x0, 0x33, 0x0, 0x0, 0x01, 0x02, 0x03, 0x04, 0x25]
framing_array.each do|command|
  sp.syswrite(command)
  sp.flush()
end
puts "data has sended"
read_data =""
"in first loop"
loop do
  puts "in second loop"
  read_data_temp = sp.read(1)
  puts "data is readed"
  puts "Temp data: #{read_data_temp}"
  if read_data_temp == nil
    read_data_temp.to_s
    puts "comes nil"
    break
  else
    read_data = read_data + read_data_temp
    read_data_hex = read_data
    puts "read_data: #{read_data_hex}"
  end
end
puts "Exiting..."
exit

我的Arduino代码是:

int incomingByte;
void setup() {
  Serial.begin(115200);

}  

void loop() {
// send data only when arduino receives data: 
        if (Serial.available() > 0) {
                // read the incoming byte:
               incomingByte = Serial.read();
               Serial.print("He sends me this");
               Serial.print(incomingByte);
        } 
}

我无法发送数据。当我尝试不发送而读取数据时,Arduino可以通过串行端口发送数据,并且可以在终端中显示它。但是,当我尝试发送和读取数据时,它什么也不显示。 Arduino发送nil,然后elsif blog运行并返回到循环的开始。

编辑:我问我的朋友,他说我是因为超时。可以解决超时问题吗?如果可以,如何正确设置超时时间? 有解决这个问题的主意吗?

0 个答案:

没有答案