0

我正在将英文字母从 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() 的源代码,但我无法理解它。

4

0 回答 0