用SPCOMM向串口发送数据失败,WriteCommData返回FALSE,GetLastError的结果是1444(无效的线程标识),究竟是什么问题啊???
我用SPCOMM写了一个串口通信程序,在自己的机器测试通过了,
但在别人的机器上运行时出现了问题:向串口发送数据失败!WriteCommData返回了FALSE。
调试了一下,发现是WriteCommData函数中的PostThreadMessage返回了FALSE,于是GetLastError了一下,结果是1444(无效的线程标识)!
难道是SPCOMM有问题吗?!
为了查清楚问题的原因,我继续对WriteCommData函数进行调试,我在PostThreadMessage之前加了一行显示WriteThread.ThreadID的代码,
看看线程的ID是否正常。奇怪的事情发生了,程序在显示了WriteThread.ThreadID之后,PostThreadMessage返回了TRUE,发送成功了!
有熟悉SPCOMM的朋友碰到过这种情况吗?能给小弟解析一下吗?!!感激不尽!!
[解决办法]
我也遇到过,说不清为什么.
有时候牵涉到硬件部分的编程,时序很重要.这种情况多半sleep一下就可以了.
可以理解为"给点时间让硬件思考一下"