1

QT 中的 CAN 通信存在特定问题。发送/写入 CAN 消息不是问题,但 QT 中的 readFrame() 函数不会加载我收到的帧。如果您在 C++ 中实现 CAN 通信,您可以使用 read() 和 write() 函数。但在 QT 中不受支持。一般来说,读取功能会中断程序,直到收到消息,我如何在 QT 中做同样的事情?

QCanBusFrame frame = device->readFrame();

感谢您的帮助,我真的很感激!

4

1 回答 1

0

来自 QT 文档:

从队列中返回下一个 QCanBusFrame;否则返回一个空的 QCanBusFrame。返回的帧从队列中移除。

队列按照先进先出原则运行。

https://doc.qt.io/qt-5.12/qcanbusdevice.html#readFrame

尝试先调用

bool QCanBusDevice::waitForFramesReceived(int msecs)

https://doc.qt.io/qt-5.12/qcanbusdevice.html#waitForFramesReceived

然后读取帧

于 2021-09-14T13:49:45.477 回答