QT中的CAN通讯

CAN Communication in QT

我对 QT 中的 CAN 通信有一个特定的问题。 send/write CAN 消息不是问题,但 QT 中的 readFrame() 函数不会加载我接收到的帧。如果您在 C++ 中实现 CAN 通信,则可以使用 read() 和 write() 函数。但在QT中是不支持的。一般来说,读取函数会中断程序,直到收到一条消息,我怎样才能在 QT 中做同样的事情?

QCanBusFrame frame = device->readFrame();

感谢您的帮助,非常感谢!

来自 QT 文档:

Returns the next QCanBusFrame from the queue; otherwise returns an empty QCanBusFrame. The returned frame is removed from the queue.

The queue operates according to the FIFO principle.

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

然后读取帧