| 查看: 561 | 回复: 3 | |||
| 当前主题已经存档。 | |||
| 【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 xyphys638 的 14 个金币 | |||
xyphys638银虫 (小有名气)
|
[交流]
【求助】检测串口数据输出
|
||
|
求助: 老板写了个串口程序,但是在读取数据的时候,运行的很慢,因为是,一直在读取,所以很费时。 因此希望能找个函数,或者一段代码,来监视串口是否有数据输出,如果有了,就读取,否者直接运行下一步。 麻烦高手指点一下,为了便于理解,我贴上一段关于设置串口的程序, wsprintf(com_ch,"COM1" ;hCom = CreateFile(com_ch, GENERIC_READ | GENERIC_WRITE,0, NULL,OPEN_EXISTING,0,NULL); Memo_emission->Text="tentative d'ouverture de ligne COM1 "; if (GetCommState(hCom,&dcb)) {COM_ID_OK=true; dcb.BaudRate = 38400;//4 ?1 droite 5 ?0 gauche //dcb.BaudRate = 19200;//4 ?0 gauche 5 ?1 droite //dcb.BaudRate = 9600;//4 ?1droite et 5 ?1 droite dcb.StopBits = ONESTOPBIT; dcb.ByteSize = 8; dcb.Parity = NOPARITY; //dcb.fRtsDisable = dcb.fDtrDisable = true; dcb.fOutxCtsFlow = dcb.fOutxDsrFlow = false; //dcb.fDtrflow = dcb.fRtsflow = false; dcb.EvtChar = 'X'; COM_ID_OK=SetCommState(hCom,&dcb); // initialiser l'閠at de la ligne lpCommTimeouts =new _COMMTIMEOUTS; GetCommTimeouts(hCom,lpCommTimeouts); lpCommTimeouts->ReadIntervalTimeout = 1; lpCommTimeouts->ReadTotalTimeoutMultiplier = 1; lpCommTimeouts->ReadTotalTimeoutConstant = 10; lpCommTimeouts->WriteTotalTimeoutMultiplier= 1; lpCommTimeouts->WriteTotalTimeoutConstant = 10; SetCommTimeouts(hCom,lpCommTimeouts); Memo_emission->Lines->Add("r閡ssi OK\n" ;和读取的程序: ReadFile(hCom,serial_rec_buffer,buf_size,&NbCar,NULL); if(NbCar>0) {if(serial_rec_buffer[NbCar-2]==0x0D) {MESSAGE_OK=true; // on verifie le caract鑢e de fin serial_rec_buffer[NbCar-2]=0x00; Memo_reception->Lines->Add(serial_rec_buffer); } else {delay(100);ReadFile(hCom,serial_rec_buffer,buf_size,&NbCar,NULL);} } 请高手帮帮忙,谢谢了! 同时祝大家圣诞快乐! |
» 猜你喜欢
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有8人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有7人回复
磺酰氟产物,毕不了业了!
已经有5人回复
论文终于录用啦!满足毕业条件了
已经有25人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有3人回复
自荐读博
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有5人回复
不自信的我
已经有5人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
feichengxyz
铁杆木虫 (著名写手)
- 应助: 1 (幼儿园)
- 金币: 8538.5
- 散金: 60
- 红花: 4
- 帖子: 1162
- 在线: 908.3小时
- 虫号: 425858
- 注册: 2007-07-28
- 性别: GG
- 专业: 催化化学
2楼2009-12-25 15:14:51
feichengxyz
铁杆木虫 (著名写手)
- 应助: 1 (幼儿园)
- 金币: 8538.5
- 散金: 60
- 红花: 4
- 帖子: 1162
- 在线: 908.3小时
- 虫号: 425858
- 注册: 2007-07-28
- 性别: GG
- 专业: 催化化学
★ ★ ★ ★ ★ ★
波不动(金币+2,VIP+0):辛苦了! 12-25 21:55
xyphys638(金币+4,VIP+0):附件下不了,能发到邮箱嘛?邮箱:yxphys@gmail.com 12-25 23:10
波不动(金币+2,VIP+0):辛苦了! 12-25 21:55
xyphys638(金币+4,VIP+0):附件下不了,能发到邮箱嘛?邮箱:yxphys@gmail.com 12-25 23:10
|
MScomm控件源码见附件,使用方法详见http://blog.gkong.com/more.asp?name=lightwhite&id=22424 简单的,也可以利用VC的OnTimer事件驱动,定期检测串口是否有数据输入。 |
3楼2009-12-25 21:26:46
4楼2010-01-04 23:03:02









;
回复此楼