首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

cf中打开串口有关问题,有点悲剧

2012-03-28 
cf中打开串口问题,有点悲剧wince6.0,s3c6410用cf写了个串口的程序,在open的时候出现:com1 rate19200,pari

cf中打开串口问题,有点悲剧
wince6.0,s3c6410
用cf写了个串口的程序,在open的时候出现:
com1 rate=19200,parity=0,databits=8
System.IO.IOException: IOException
M?System.IO.Ports.SerialStream.WinIOError(Int32 errorCode, String str)
M?System.IO.Ports.SerialStream.CheckResult(Int32 err)
M?System.IO.Ports.SerialStream.InitializeDCB(Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Boolean discardNull)
M?System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
M?System.IO.Ports.SerialPort.Open()
M?ST.GlobalSystem.Init()
M?ST.AppMain.Program.Main()

整个板子重新boot,大部分情况下,没有问题,大概启动个50次有一次,打开失败,郁闷,测试了好几天了,


[解决办法]
用TRY 的办法打开
然后不论出错否,检查ISOPEN=TRUE
如果为TRUE 则,已经可以正常读写了。
[解决办法]
是用c#的SerialPort控件封装的方法打开的吗?
WinCE下的这个控件,发现过一些问题,后来放弃了,还是用了API。

同意楼上的说法,这样的代码肯定要加上异常安全处理。
不知道c#可不可以返回一些error code,看下出错原因。

如果打开失败的话,retry几次可不可以呢。

我们以后的项目也有可能会使用c#.net,关注此帖。
[解决办法]
看下我资源里面的C#串口的例子
[解决办法]
我之前也用过c#,只不过当时没有频繁打开关闭串口,没有发现这个问题。
[解决办法]

探讨

没有频繁打开啊,板子重新上电后,有一定机率打开失败,
现在用c#调用api目前还没发现问题,明天再测试一天看看呢

热点排行