真诚希望大家能帮助我,我查了很多书,都是对这部分一带而过,所以到现在好多天了还
是不清楚,请大家帮助我,谢谢了!
MScomm
1。我在使用mscomm控件的时候,对于handshaking这个属性一定要设置么?如果我是用硬
件握手,但是设置为3/comRTS xon xoff会有么后果?2.对于DSR DTR CTS RTS  4个,其中有两个是对主机以外的设备发送的,2个是其他设备对
主机发送的信号,当发送的时候,RTS发送完数据后会自动的置位,这样就告知外设请求发
送,可以进行新的发送,而当CTS接收到高电平的时候,代表对方的也准备好了,这时候就
需要发送了,但是必须要用output来写一下才行。不知道我这么理解对不对?
'等待rts信号
do while until (mscomm1.rtsholding=true )
mscomm1.output()
时不时不需要对rts进行设置的?因为它是自动硬件置位的?
3。另外对于缓冲buffer和input /output的关系我也不太清楚,是说output只是将数据送
入buffer中,但究竟具体是什么时候从buffer向外传输完全取决于其他的属性,比如rthe
rshold=20,如果你output每次至发送5个字节,那么要进行4次output语句,才能将数据发
送出去?
数据类型
4。请问对于从川口取回的数据我使用integer类型接受,之后转换成string型的是否
  dim num as integer
  dim nnn as string
  a=mscomm1.input
  ....
  然后怎么做我就不知道了 ,我只会C....
5。我从txt中的比如  4。5这样的浮点数,怎么一丛txt中取出来,并且转换成integer类
型的?就是去除掉小数点,变成45。6。我知道单片机中的都是采用二进制数字的,而pc中则采用了asc码,在他们中间应该还有一个BCD码作为桥梁,我想问一下,rs232的协议中传输的有没有规定是哪一种,二进制还是BCD,还是传输的就是2进制,只是在pc接受的解析成什么样的数据类型完全由你自己定义?
谢谢大家,问题比较多,大家会哪个,帮我解决哪个吧,谢谢了/
  

解决方案 »

  1.   

    to 1 当然不需要设置handshaking这个属性了。
    to 3 只有在接收的时候才会用到数据的缓冲的
      

  2.   

    本人也是学单片机的,也同样碰到了同样的问题?
    以下是我的一些看法(程序)希望对你有些参考,也想与大家一起讨论!这程序运行说MSComm1.Output = outbte(0)属性无效,我真搞不懂!?
    Private Sub Command1_Click()
       Dim num As Integer
       Dim outbte(0) As Byte
       num = Val(Text1.Text)
       outbte(0) = CStr(num)
       MSComm1.OutBufferCount = 0
       MSComm1.Output = outbte(0)
    End SubPrivate Sub Command2_Click()
       Unload Me
    End SubPrivate Sub Form_Load()
       MSComm1.CommPort = 1
       MSComm1.Settings = "2400,n,8,1"
       MSComm1.PortOpen = True
    End SubPrivate Sub MSComm1_OnComm()
       Dim indata As Variant
       Dim bte(0) As Byte
       Select Case MSComm1.CommEvent
       Case comEvReceive
       indata = MSComm1.Input
       bte(0) = AscB(indata)
       Text2.Text = bte(0)
       MSComm1.InBufferCount = 0
       End Select
    End Sub
      

  3.   

    to  shen303()  你定义的bte(0)是什么意思?
    应该这样定义
    dim bte() as byte
    dim str as string
    ....
    bte = MSComm1.Input
    str= StrConv(bte, vbUnicode)