短接串口的2、3脚
有两个dialog 分别为 page1_dlg和page2_dlg用于tabctrl。
page1_dlg上面有个mscomm控件并已经实现串口通信。调用函数send_com("begin"),可以收到回复。
在page2_dlg中调用page1_dlg的公有函数open_com()打开串口,调用send_com("begin"),可以正常发送(用示波器可以看到波形),但是收不到数据。
猜想原因:
     page1的串口响应函数on_com没有正常相应串口动作。
我的解决方法
     当我直接调用page1的on_com函数时收不到数据,但在on_com中添加messagebox函数时候可以看到收到数据了。但这种方法显然不能用,因为不可能收到个数就弹消息框。希望能得到帮助~!

解决方案 »

  1.   

    page1的消息响应有问题,是否消息循环不对..
    先看page1的on_com函数自身有没有得到响应的数据,如果得到了,由它来触发page2,而不是让page2来调用它
      

  2.   

    在page1里面我是右键单击mscomm控件添加的消息处理函数,另外page1是个串口工具,可以正常使用(收发正常),感觉消息函数应该没错吧~@
    只是page2调用page1的发送时可以发送,但接受的话,好像就需要手动了~@
      

  3.   

    page1收到了的话,那你就在page1的消息处理函数中把数据传递给page2
      

  4.   

    我是参考龚建伟的串口工具的制作方法来做的,唯一多了一个在另一个dlg调用。
      

  5.   

    在page2操作的时候page1是收不到的,只有调用了oncomm这个处理函数才能收到。
    但这个函数在page1中是自动触发的呀,可不可以在page2中也自动触发呢?
      

  6.   

    前面说了,oncomm只能在page1中自动触发,当它触发后,你把接收的数据通过调用page2的一个函数作为参数传递给page2来处理
      

  7.   

    可是我的工作界面是page2呀,不可能去page1的~!那么他又怎么传递呢?