QT 中的 CAN 通信存在特定问题。发送/写入 CAN 消息不是问题,但 QT 中的 readFrame() 函数不会加载我收到的帧。如果您在 C++ 中实现 CAN 通信,您可以使用 read() 和 write() 函数。但在 QT 中不受支持。一般来说,读取功能会中断程序,直到收到消息,我如何在 QT 中做同样的事情?
QCanBusFrame frame = device->readFrame();
感谢您的帮助,我真的很感激!
来自 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
然后读取帧