|
問: 16:00:51
timer = new QTimer(this);
timerFlag =false;
connect(timer,SIGNAL(timeout()),this,SLOT(timerDone()));
timer->start(1000);
while(1)
{
if(timerFlag == true)break;//超時退出
}
問: 16:01:20
void ConnectDialog::timerDone()//超時處理函數(shù)
{
timerFlag=true;
disconnect(timer,SIGNAL(timeout()),this,SLOT(timerDone()));
delete timer;
}
問: 16:01:45
這樣寫,為什么是死循環(huán)。
橙 子<lizheng310@vip.qq.com> 16:03:10
處理函數(shù)會執(zhí)行嗎
問: 16:04:00
單片機程序?qū)懚嗔耍氘?dāng)然了。
問: 16:04:25
把槽函數(shù)當(dāng)單片機中斷玩了。
Howe(423286697) 16:05:19
如果定時器只用一次的,怎么不用QTimer::singleShot 呢
問: 16:05:28
不知道這里都是用什么處理辦法,是不是要用多線程,還是什么?
問: 16:06:34
是打開只用一次。
橙 子<lizheng310@vip.qq.com> 16:07:37
用exec()超時后exit()
A: 16:08:40
不能用定時器觸發(fā)槽嗎?
橙 子<lizheng310@vip.qq.com> 16:09:41
可以
橙 子<lizheng310@vip.qq.com> 16:10:31
你把while刪了 寫上 this->exec(),試試
橙 子<lizheng310@vip.qq.com> 16:11:22
在槽里輸出一下 看執(zhí)行了沒
A: 16:11:50
你是想定時?這樣寫?
A: 16:11:54
暈?zāi)懔?nbsp;
A: 16:12:14
延時多少 是吧?
問: 16:14:30
不是寫延時,是遍歷系統(tǒng)可用串口并打開串口,向串口發(fā)送連接命令,在1秒內(nèi)接收到電路有效回應(yīng),就記錄下設(shè)備的相關(guān)信息。
A: 16:15:42
設(shè)置超時吧 意思是
問: 16:15:59
嗯,是的。
A: 16:16:35
其實槽函數(shù)就相當(dāng)于中斷 是會返回的
A: 16:17:35
讀串口的槽函數(shù) 設(shè)個標(biāo)志位
A: 16:18:46
在延時函數(shù)里面查詢就是了 一秒沒查詢到置位 那就是超時了啊 返回false
問: 16:19:02
那我的寫法就應(yīng)該沒錯的,while(1){if(timeflag==1)break;}超時的槽函數(shù)把這個標(biāo)志位置1,但事實并不是這樣的。
A: 16:19:26
為什么這樣寫?
問: 16:19:51
QByteArray temp;
temp = myCom->readAll();
if(!((temp.isEmpty())|(temp.isNull())))
{
reapt.append(QString(temp));
qDebug()<<reapt<<endl;
if((!reapt.startsWith("Ok"))&&(reapt.size()>=2))reapt.clear();
if(reapt.endsWith('\n'))endFlag = true;
}
A: 16:19:53
你沒運行超時的函數(shù) 如何查詢?
A: 16:20:55
你沒運行超時的函數(shù) 如何查詢?
問: 16:20:55
看來,我又掉進(jìn)死胡同了。
A: 16:21:19
假如沒有返回 那你不是死循環(huán)了?
A: 16:21:46
我也是做單片機的
A: 16:21:50
也沒你這樣做
靜心(501809514) 16:22:03
呵呵
問: 16:22:06
qtimer啟動后,超時不會自動發(fā)送timeout信號嗎?
A: 16:22:29
那我就不知道了
A: 16:23:38
我的超時函數(shù)
A: 16:23:39
bool Widget::sleep(unsigned int msec)
{
QTime dieTime = QTime::currentTime().addMSecs(msec);
while( QTime::currentTime() < dieTime )
{
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
if(lock_flag)
{
lock_flag = false;
return true;
}
}
return false;
}
問: 16:27:33
嗯,好的,晚上我回去,參考你的,在多看看資料。謝謝。
A: 16:27:51
我是個新手 不一定行
A: 16:28:07
本地圖片,請重新上傳
問: 16:29:13
謙虛了,放心,肯定會多查多看,不會只盯著你的代碼研究。
A: 16:29:14
你是讀書郎?
問: 16:29:46
不是,我畢業(yè)兩三年了,qt是去年自己自學(xué)的。
A: 16:30:22
我也是過年才做了下Qt 發(fā)現(xiàn)只會用 但是看不懂
B: 16:30:24
仟門現(xiàn)在用QT來做什么?
A: 16:30:36
所以目前在學(xué)習(xí)C++
問: 16:30:47
只是想做一個串口的上位機,和自己的電路通信。
B: 16:31:14
仟門
現(xiàn)在做什么工作?
問: 16:31:42
本地圖片,請重新上傳樓上你打聽那么多,干嘛?
B: 16:32:17
本地圖片,請重新上傳看看都是搞些什么的,多向你們學(xué)習(xí)學(xué)習(xí)
橙 子<lizheng310@vip.qq.com> 16:32:35
本地圖片,請重新上傳讓我郁悶的是一直再close_wait 就是不關(guān)閉
問: 16:33:10
我做八位單片機開發(fā),有時間幫忙把樓上問題解決一下。
問: 16:33:35
我心有余,力不足本地圖片,請重新上傳本地圖片,請重新上傳
A: 16:35:28
我是M0
A: 16:35:47
你什么型號?
問: 16:36:23
我比你低級,elan,stc,avr,pic。
A: 16:36:54
elan不知道是什么
問: 16:37:40
臺系單片機,elan holtek
問: 16:37:55
都白菜的價格。
問: 16:38:13
一元不到一片。
A: 16:38:36
。。。
問: 16:39:06
m3還知道,m0沒研究過。
A: 16:39:24
你會寫makefile
問: 16:39:31
nxp的?
A: 16:39:35
M幾都差不多
A: 16:39:46
是的
|
|