串口编程

hbx19720513 2005-11-10 07:52:07
各位高手:
请问用API函数写串口通讯程序时,写和读之间的延时怎么处理,我需要采集的数据是实时性很高的,怎样写利用系统事件处理,提高系统的效率。
...全文
478 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbx19720513 2005-12-01
  • 打赏
  • 举报
回复
能否提供实例,让我学习一下,好不好。
38062708 2005-11-29
  • 打赏
  • 举报
回复
我曾经写程序想得到串口发送数据完毕的信号,可是试了很多方法都没有得到
--------------------------------------------------
使用WaitCommEvent。串口发送数据完毕是,有一个事件 EV_TXEMPTY。


我来试试看
bailindf 2005-11-23
  • 打赏
  • 举报
回复
还有ClearCommError 这个东西返回的COMSTAT.cbInQue是以什么方式判断有多少个char?是遇到'\0'就结束,还是遇到我们指定的结束符结束?
例:假如结束符为0x16 ,返回的数据为:0x31 0x31 0x00 0x16 0x00 0x31 0x16,这时调用ClearCommError返回COMSTAT.cbInQue为多少?
bailindf 2005-11-23
  • 打赏
  • 举报
回复
判断InBufferCount是否为0,为0的话就接收完了

怎么判断?
seaquester 2005-11-23
  • 打赏
  • 举报
回复
还有ClearCommError 这个东西返回的COMSTAT.cbInQue是以什么方式判断有多少个char?是遇到'\0'就结束,还是遇到我们指定的结束符结束?
--------------------------------------------------
COMSTAT.cbInQue的值是串口驱动从UART的FIFO中读回的数据的多少,跟你的数据是什么无关。


我曾经写程序想得到串口发送数据完毕的信号,可是试了很多方法都没有得到
--------------------------------------------------
使用WaitCommEvent。串口发送数据完毕是,有一个事件 EV_TXEMPTY。
lzy371 2005-11-20
  • 打赏
  • 举报
回复
处理读和写的过程可以通过标记变量来告知,并根据告知查询处理,如果实时性太高单纯的基于VC是很难实现的。
yayaniuniu502 2005-11-20
  • 打赏
  • 举报
回复
判断InBufferCount是否为0,为0的话就接收完了
wxrwan 2005-11-17
  • 打赏
  • 举报
回复
mark
38062708 2005-11-15
  • 打赏
  • 举报
回复
我曾经写程序想得到串口发送数据完毕的信号,可是试了很多方法都没有得到,现在还是在发送后 Sleep(20) 来等待然后再清缓冲区和接收,LZ 要是有好方法的话也写出来共享下
hbx19720513 2005-11-14
  • 打赏
  • 举报
回复
我的意思能否通过检测系统状态来自动安排呀。
zhangnanonnet 2005-11-12
  • 打赏
  • 举报
回复
如果想实现高效的传输,那么就最好使用异步的方式,并对发送和接收的数据进行校验。至于你所说的延时,就要具体看你所使用的波特率和下位机的工作状态了。
hbx19720513 2005-11-11
  • 打赏
  • 举报
回复
现在我不能只适用于MOXA呀。通过API实现控制呀。
duyhui 2005-11-10
  • 打赏
  • 举报
回复
看看这个网站,串口权威!!很不错
http://www.gjwtech.com/
j805 2005-11-10
  • 打赏
  • 举报
回复
api不是很会,
做串口我一直用moxa的pcomm.dll

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧