serialport发送与接收16进制数据程序
上位机和单片机通信用16进制比较多,下面是16进制通信的例子,数据发送用write,数据接收用readbyte。
importssystem.io.ports'使用serialport所引用的命名空间
publicclassform1
dimfx()asbyte'待发送数据数组
dimrc()asbyte'接收数据数组
privatesubbutton1_click(byvalsenderassystem.object,byvaleassystem.eventargs)handlesbutton1.click
ifbutton1.text="打开串口"then
serialport1.portname="com1"
serialport1.open()'串口打开与关闭
button1.text="关闭串口"
button2.enabled=true
timer1.enabled=true
else
ifserialport1.isopenthenserialport1.close()
button1.text="打开串口"
timer1.enabled=false
button2.enabled=false
endif
endsub
'待发送数据处理与发送
privatesubbutton2_click(byvalsenderassystem.object,byvaleassystem.eventargs)handlesbutton2.click
dimiasinteger
dimnasinteger
dimcmdasstring=textbox1.text
n=len(cmd)\2
redimfx(n)
fori=1ton
fx(i)=cbyte("&h"&mid(cmd,2*i-1,2))
next
serialport1.write(fx,1,n)'发送数组fx第1到n数据
endsub
'数据定时接收与显示
privatesubtimer1_tick(byvalsenderassystem.object,byvaleassystem.eventargs)handlestimer1.tick
dimstrrcasstring
dimiasinteger
dimnasinteger
n=serialport1.bytestoread'读缓冲区数据量,有数据则接收
ifn>0then
redimrc(n)
strrc=""
fori=1ton
rc(i)=serialport1.readbyte
strrc+=cstr(hex(rc(i)))&""'数据转为16进制显示
next
textbox2.text=strrc
endif
endsub
endclass
原文标题:SerialPort发送与接收16进制数据讲解,如若转载,请注明出处:https://www.saibowen.com/news/8778.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。