1
4
RTS U控制开关 在我们的嵌入式XP平台上不工作(在传输后关闭它之前有一个可变的1-15毫秒延迟)。如果我使用TimeBeginPeriod(1)等将时间量更改为1毫秒,我可能会降低这个值,但我怀疑它是否可靠或足够重要。(设备有时响应1毫秒) 最后的解决方案确实很难看,但它在这个硬件上工作。我不会把它用在任何没有用石头固定硬件的地方。 基本上: 1)将串行端口设备管理器页面上的FIFOS设置为关闭或1个字符深 2)发送信息+ 2个额外字节 使用此代码:
当最后一个或两个字节已写入串行端口时,writefile()返回。它们还没有离开端口,因此需要额外发送2个字节。当你做CLRRTS的时候,它们中的一个或两个会被丢弃。 就像我说的…太难看了。 |
2
1
您可能会发现DDK中有串行端口驱动程序的源代码,这可以让您了解如何实现该选项:即,它是否处于中断级别、DPC级别或更糟的级别。 其他可能的方法包括重写驱动程序;如果你能找到第三方RS485驱动程序,就使用第三方RS485硬件;或者使用第三方RS485硬件及其自己的驱动程序(例如,至少在过去的第三方中,用于制造具有32个端口的“智能串行端口板”、深度缓冲区及其自己的微处理器);我预计RS485是一个已经解决的问题。被某人)。 8毫秒看起来确实是一段令人失望的长时间;我知道xp不是一个RTOS,但我希望它(通常)做得更好。另一个需要注意的是是否有其他高优先级线程正在运行,这可能会造成干扰。如果您在自己的应用程序中提高了一些线程的优先级,那么您可能应该降低其他线程的优先级。
不要让那个线程失控:如果一个这样的线程的bugy永远抢占其他所有用户模式的线程,那么IME也可以。 |