if(serial_MN->isOpen()) { QElapsedTimer t; t.start(); while(t.elapsed()<200) QCoreApplication::processEvents(); serial_MN->write(byteArray); }怎么修改为200ms
时间: 2024-02-14 20:18:31 浏览: 26
如果你要将 `t.elapsed() < 200` 修改为 `t.elapsed() < 500`,你只需要将代码修改为以下内容即可:
```cpp
if(serial_MN->isOpen()) {
QElapsedTimer t;
t.start();
while(t.elapsed() < 500) // 将200改为500
QCoreApplication::processEvents();
serial_MN->write(byteArray);
}
```
这样就将等待时间从200毫秒修改为500毫秒了。
相关问题
if(serial_MN->isOpen()) { QElapsedTimer t; t.start(); while(t.elapsed()<200) QCoreApplication::processEvents(); serial_MN->write(byteArray); }怎么修改为200ms一直连续发送
如果你要将上述代码修改为一直连续发送,并且每次发送之前等待200毫秒,可以使用一个无限循环来实现。需要注意的是,这种无限循环需要在某个条件下跳出,否则程序将一直运行下去。
以下是修改后的代码:
```cpp
if(serial_MN->isOpen()) {
while(true) { // 无限循环
QElapsedTimer t;
t.start();
while(t.elapsed() < 200) {
QCoreApplication::processEvents();
}
serial_MN->write(byteArray);
}
}
```
这样就可以让程序一直发送,并且每次发送之前等待200毫秒。你可以根据需要添加跳出循环的条件。
qt在打开串口的同时调用这个函数会奔溃void MainWindow::init_send() { if(flag_flag2==0) { QVector<QPointF> ppp; QPointF pp1; pp1.setX(0); pp1.setY(0); ppp.append(pp1); QByteArray ba_MNGPS=MNGPSBa(ppp[0],0); showPaint(); if(serial_MN->isOpen()) { QElapsedTimer t; t.start(); while(t.elapsed()<200) QCoreApplication::processEvents(); serial_MN->write(ba_MNGPS); } timerttt->start(200); // 每隔1秒执行一次 myFunction() } }
如果在打开串口的同时调用init_send()函数导致程序崩溃,可能是因为在函数中涉及到了UI操作,而此时UI还没有被正确初始化。为了解决这个问题,您可以将init_send()函数的调用放在串口打开完成的槽函数中,例如:
```cpp
void MainWindow::on_btn_openMN_clicked()
{
// 打开串口代码
if(serial_MN->isOpen())
{
connect(serial_MN, &QSerialPort::readyRead, this, &MainWindow::readMNData);
connect(serial_MN, &QSerialPort::errorOccurred, this, &MainWindow::handleMNError);
// 在串口打开完成后调用init_send()函数
init_send();
}
else
{
QMessageBox::critical(this, "Error", "Failed to open serial port!");
}
}
```
这样,init_send()函数就会在保证UI已经正确初始化的情况下被调用,避免了程序崩溃的问题。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)