用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) &&向串口输出