毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 嵌入式 >> 正文

s3c6410+wince6如何确定串口已发送完毕

更新时间:2014-9-22:  来源:毕业论文

我用的是s3c6410+wince6,
在调用系统层的CreateFile()和WriteFile()函数后,似乎只是把数据放入软件或硬件的缓冲区就返回了,并未阻塞到硬件上真正发送完毕。

我现在是要确切的知道硬件上已发送完毕,有没有什么办法?
用发送中断可获知数据已发出。
串口发送缓冲区只有8个字节,超过8字节就要分多次写入,所以用这个中断也会误判吧?很多能只是某8个字节发送完毕而不是所有数据发送完毕
串口发送缓冲区只有8个字节?这个驱动也太变态了吧!!!

这个可以通过设置串口的参数来控制,虽然这样做没有采用中断即时,但个人认为最实用。
检查Transmitter Holding Register Empty Interrupt (16550兼容)

不过只能检查串口的缓冲寄存器空。 还需要上层配合。 我觉得楼主还是直接检查WriteFile的返回值和返回参数(ActualWritten),只要驱动没问题,数据是不会丢失的,WriteFile写入的内容,驱动会缓存起来,然后慢慢发出去。
--------------------------------------------------------------
最终的解决方式是:
根据波特率和开始位停止位参数计算最短时间,超过这个时间之后就开始查询串口缓冲区为空的标志位。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。