关于BHT-303BW的调试(转)

来源:互联网 发布:mac自带五笔输入法 编辑:程序博客网 时间:2024/05/16 12:55
BHT-303BW在编程的时候有时候会出现连接错误.
该问题主要由于无线模块的差异性引起.
解决该问题的方法很简单, 需要通过"SOCKET.FN3"调整无线模块等待连接的时间.


  ....
  FAMILY% = 2  : TYPE% = 1  : PROTOCOL% = 6                  'TCP/IP PROTOCOL 
  CALL "SOCKET.FN3" 26 FAMILY%, TYPE%, PROTOCOL%, SOCKFD%
  SOCK.STAT% = 4                                             'OPEN SOCKET 
 
 
  '请调整OPTION的参数,这里. 它决定了连接等待的时间. 
  '由于每个无线模块的反应速度不一样,如果等待的时间太短,有时候会出现错误.
  OPTNAME% = 26  : OPTION = 1
  CALL "SOCKET.FN3" 24 SOCKFD%, OPTNAME%, OPTION
  OPTNAME% = 30  : OPTION% = 100
  CALL "SOCKET.FN3" 24 SOCKFD%, OPTNAME%, OPTION

 
  
  CALL "SOCKET.FN3" 8 TCP.PORT%, PORT%                       'NETWORK BYTE ORDER 
  
  FAMILY% = 2 
  CALL "SOCKET.FN3" 3 SOCKFD%, FAMILY%, PORT%, SVRIP$
  SOCK.STAT% = 5                                              'CONNECT SOCKET (TCP OPENED)



具体调试的时候, 可能很难判断该错误是否是由于无线模块的差异性引起.
这样就需要暂时注释"ON ERROR GOTO ..." 语句. 

这样,如果出现错误, BHTOS会自动抛出异常并且强制中断程序.
同时,在屏幕下方会显示错误号和错误行号
ERR=XXXX
ERL=XXXX

ERL就是引起错误的代码行号. 只要通过查询.LST文件就可以发现大概的位置. 
如果错误是下面的代码引起的, 则很有可能是该文描述的原因.
  CALL "SOCKET.FN3" 3 SOCKFD%, FAMILY%, PORT%, SVRIP$