用VB做个小串口程序的问题
<p>请教下老马</p><p>有个朋友拖我做一个VB串口小程序 <br/>由于有关串口与下位机通讯方面的,从来没接触过下位机,所以有点摸不着头脑 <br/>程序要求很简单 <br/>能够加载下位机时间,并进行修改 <br/>请教下各位老鸟该怎么编这个程序 <br/>如何用MSComm进行下位机连接? <br/>怎么加载它的时间 <br/>是否需要什么协议之类的?</p> <p>想起来可能很复杂,但做起来也许很简单.</p>
<p> </p>
<p>首先打开串口.</p>
<p> </p>
<p>然后用OUTPUT属性来发送数据.</p>
<p> </p>
<p>当设备有数据过来时,会触发<font face="Verdana">OnComm</font>事件,在这个事件里处理收到的数据即可.</p>
<p> </p>
<p>以上即是整个流程.</p>
<p> </p>
<p>这里面的关键在于下位机能接收什么样的指令,以及会发送什么数据回来.</p>
<p> </p>
<p>就是你说的协议,这是必须要有的,可以向下位机开发者取得,他是一定会给你的,不然开发这个下位机就没有意义了.</p>
<p> </p>
<p>最后祝你好运.</p>
1
<p>老马真牛</p><p>跟百科全书一样</p>
<p>啥都知道~</p>
<p>谢谢啦···</p> <p>对了···老马有这种通讯的例子么</p>
<p>我来模仿一下</p> <p>这个没什么好看的......</p>
<p> </p>
<p>发送即:</p>
<p> </p>
<p><font face="Verdana"> Dim Buff1(1) As Byte</font></p>
<p> </p>
<p><font face="Verdana"> Buff1(0) = &H1B '1B 6D<br/> Buff1(1) = &H6D<br/> <br/> MSComm1.Output = Buff1()</font></p>
<p> </p>
<p>这样就向串口发送了一个&H1B6D.</p>
<p> </p>
<p>接收部分是MSDN里的示例:</p>
<p> </p>
<p><font face="Verdana">Private Sub MSComm1_OnComm()<br/> Select Case MSComm1.CommEvent<br/> ' Handle each event or error by placing<br/> ' code below each case statement</font></p>
<p><font face="Verdana"> ' 错误<br/> Case comEventBreak ' 收到 Break。<br/> Case comEventCDTO ' CD (RLSD) 超时。<br/> Case comEventCTSTO ' CTS Timeout。<br/> Case comEventDSRTO ' DSR Timeout。<br/> Case comEventFrame ' Framing Error<br/> Case comEventOverrun '数据丢失。<br/> Case comEventRxOver '接收缓冲区溢出。<br/> Case comEventRxParity ' Parity 错误。<br/> Case comEventTxFull '传输缓冲区已满。<br/> Case comEventDCB '获取 DCB] 时意外错误</font></p>
<p><font face="Verdana"> ' 事件<br/> Case comEvCD ' CD 线状态变化。<br/> Case comEvCTS ' CTS 线状态变化。<br/> Case comEvDSR ' DSR 线状态变化。<br/> Case comEvRing ' Ring Indicator 变化。<br/> Case comEvReceive ' 收到 RThreshold # of chars.<br/> Case comEvSend ' 传输缓冲区有 Sthreshold 个字符<br/> Case comEvEOF ' 输入数据流中发现 EOF 字符 '<br/> End Select<br/> <br/> Debug.Print MSComm1.InputLen '打印收到的数据的长度<br/>End Sub</font></p>
页:
[1]