none
【求助】使用SerialPort控件打开WinCE模拟器串口失败! RRS feed

  • 问题

  • 我在程序中使用SerialPort打开WinCE模拟器串口,总是失败,抛出IOExceptio异常。

    详细情况:
    1. 在PC中有两个串口COM3和COM4,并使用串口线连接,两个都是USB2COM;
    2. 在模拟器的“外围设备”中将“串行口0”映射为PC的COM3;
    3. 在PC中监听COM4的数据;
    4. 在WinCE中使用ARMV4_SM.EXE打开COM1,可以成功,发送数据时PC的COM4也可以正确接收;
    5. 但是当我使用C#的控件SerialPort时,就会出现异常。
    6. 之后,我又使用Virtual Serial Port Driver 6.0 虚拟了一对串口(COM5和COM6),在进行映射还是不可以……

    还望各位高人不吝指点,谢谢谢谢谢谢谢×N!

    另外:我使用DLLImport方法通过CreateFile("COM1:")是可以成功打开COM1的,但是SerialPort控件死活就是不行……
    2011年3月7日 6:26

答案

  • 好了,我的问题基本解决了……

    实际上,在Open()时的那个IOException并不是指COM1打开失败,而是Open()时其它的未知操作引起的(现在还没找到原因),

    因为就算出现了IOException,只要我忽略它,就会发现实际上IsOpen属性是等于true的,也就是说COM1实际上已经打开了,

    如果我在WinCE中使用Write()向COM1写数据,实际上可以在PC的COM4中监听到正确的数据……

     

    谢谢 dearsj001 的答复!

    • 已标记为答案 lix_mx_ 2011年3月8日 3:30
    2011年3月8日 3:29

全部回复

  • 你好,

    我以前也碰到这个问题,就是将模拟器的串口映射到PC的串口,如果是主板自带的串口就没问题,但是如果是那种USB转的串口,就会出现异常。


    施炯
    • 已标记为答案 gyrenModerator 2011年3月7日 9:13
    • 取消答案标记 lix_mx_ 2011年3月7日 10:30
    2011年3月7日 7:16
  • 你好,

    我以前也碰到这个问题,就是将模拟器的串口映射到PC的串口,如果是主板自带的串口就没问题,但是如果是那种USB转的串口,就会出现异常。


    施炯


    你好,我在同事的PC上试过了(他的主板上有一个COM口),还是不行,一直返回IOException……

    而且,一旦我使用SerialPort的Open()方法后,即使打开失败了,再使用CreateFile()也打不开了,返回-1……

    2011年3月7日 10:18
  • 好了,我的问题基本解决了……

    实际上,在Open()时的那个IOException并不是指COM1打开失败,而是Open()时其它的未知操作引起的(现在还没找到原因),

    因为就算出现了IOException,只要我忽略它,就会发现实际上IsOpen属性是等于true的,也就是说COM1实际上已经打开了,

    如果我在WinCE中使用Write()向COM1写数据,实际上可以在PC的COM4中监听到正确的数据……

     

    谢谢 dearsj001 的答复!

    • 已标记为答案 lix_mx_ 2011年3月8日 3:30
    2011年3月8日 3:29