我正在将英文字母从 Arduino 延迟一秒发送到我的笔记本电脑:
void loop()
{
delay(1000);
Serial.write('N');
}
我正在尝试使用 libusb 从 C++ 程序中捕获和打印字母。这是代码的相关部分:
while(1)
{
r = libusb_bulk_transfer(dev_handle, 131, data, 1, &actual, 0);
if(r == 0 && actual == 1) //we read 1 byte successfully
cout<<"Read Successful! Data recieved is "<<data[0]<<endl;
else
cout<<"Read Error! Return value: "<<r
<<"Actual bytes recieved = "<<actual<<endl;
}
这是我得到的输出:
Read Successful! Data recieved is A
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is B
Read Successful! Data recieved is C
Read Successful! Data recieved is D
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is E
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is F
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is G
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is H
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is I
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is J
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is K
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is L
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is M
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is N
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is O
Read Successful! Data recieved is P
Read Error! Return value: 0Actual bytes recieved = 0
Read Successful! Data recieved is Q
Read Error! Return value: 0Actual bytes recieved = 0
我观察到每秒钟 Arduino 都会发送一个字母,我的程序会成功捕捉到它。但几乎所有时间,屏幕上也会打印读取错误以及捕获的对象。是什么导致了这种情况,我该如何阻止它?
我在这里找到了 Serial.write() 的源代码,但我无法理解它。