首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

用myfll.fll串口发十六进制数据有关问题?(望豆兄帮忙)

2012-03-04 
用myfll.fll串口发十六进制数据问题?(望豆兄帮忙)要求就是往【串口设备】发一个16进制“aa 00 00 00 00”信息,

用myfll.fll串口发十六进制数据问题?(望豆兄帮忙)
要求就是往【串口设备】发一个16进制“aa 00 00 00 00”信息,通过验证后,【串口设备】会立即返回一串16进制,当然需要接收时再把16进制转回asc码。我用的是myfll.fll

PUBLIC cretmsg,hCom1

cRetMsg=''
Set Library To myFll
mm=60 && 等待循环总时间

* ----------------------------------------------------- \\ 发送
  hCom1=ComOpen(2,"9600,n,8,1")
  cMsg=CREATEBINARY("aa 00 00 00 00") && 【赋值16进制字符】 -- 这种方法不行
  cMsg=CREATEBINARY("aa 00 00 00 00") && 【赋值16进制字符】 -- 这种方法也不行
  cMsg=CREATEBINARY("chr(170)")+CREATEBINARY("chr(0)")+CREATEBINARY("chr(0)")+CREATEBINARY("chr(0)")+CREATEBINARY("chr(0)")" && 【赋值16进制字符】 -- 也不行

  ComWrite(hCom1,cMsg) &&向串口输出
 
  * --------------------------------------------------- \\ 马上接收
  m_time1=SECONDS()
  DO whil .t.
  cRetMsg=cRetMsg+ComRead(hCom1,0)
  IF LEN(ALLTRIM(cRetmsg))>6 && 接收字符大于6个退出
  MESSAGEBOX('恭喜您!数据传输完毕!')
  EXIT
  ENDIF
  m_time2=SECONDS()
  mtime=60-(m_time2-m_time1)
  IF mtime=59
  WAIT '' TIMEOUT 2
  ENDIF
   
  IF m_time2-m_time1>mm && 没有接收到退出

  MESSAGEBOX('由于长时间未接受,接收状态停止!请重新传递!')
  EXIT
  ENDIF
  ENDDO
  ComClose(hCom1)&&关闭串口
Set Library To
 


[解决办法]
send chr(0xaa)+chr(0)+chr(0)+chr(0)


[解决办法]
试试:

cMsg=chr(170)+chr(0)+chr(0)+chr(0)+chr(0)
ComWrite(hCom1,cMsg) &&向串口输出

热点排行