关于用mscomm控件实现计算机和单片机通信的问题
比如计算机向单片机发送整型数据1000,在单片机中经过计算,比如除以10后,将所得的值返回计算机,请给出详细代码。...
比如计算机向单片机发送整型数据1000,在单片机中经过计算,比如除以10后,将所得的值返回计算机,请给出详细代码。
展开
1个回答
展开全部
这是个类似的程序,PC向单片机发送6个字节的数据,单片机收到后返回PC显示。注释我都写很清楚了,你自己稍微改下就可以了。
MSCOMM1.COMMPORT1=1 '设置端口号为1
MSCOMM1.SETTINGS="19200,N,8,1" '设置波特率等通信协议
MSCOMM1.INPUTLEN=6 '设置一次从串口读取6个字节
MSCOMM1.PORTOPEN=TRUE '打开串行口
MSCOMM1.INPUTMODE=COMINPUTMODEBINARY '从串行口读取二进制数据
MSCOMM1.OUTPUT=SENDDAT '发送数据
DO UNTIL MSCOMM1.INBUFFERCOUNT>=6 '查询方式,等待收到6个字节
DOEVENTS
LOOP
DATTEMP=MSCOMM1.INPUT '从串口读取数据至变体变量
RCVDAT=DATTEMP '数据送至接收二进制数组
TXTRCV.TEXT=""
FOR I=0 TO 5 '接收数据送至接收文本框TXTRCV显示
TXTRCV.TEXT=TXTRCV.TEXT&RIGHT("0"&HEX(RCVDAT(I)),2)
NEXT I
MSCOMM1.PORTOPEN=FALSE '关闭串行口
CMDCOMM.ENABLED=TRUE '使能CMDCOMM按钮
END SUB
MSCOMM1.COMMPORT1=1 '设置端口号为1
MSCOMM1.SETTINGS="19200,N,8,1" '设置波特率等通信协议
MSCOMM1.INPUTLEN=6 '设置一次从串口读取6个字节
MSCOMM1.PORTOPEN=TRUE '打开串行口
MSCOMM1.INPUTMODE=COMINPUTMODEBINARY '从串行口读取二进制数据
MSCOMM1.OUTPUT=SENDDAT '发送数据
DO UNTIL MSCOMM1.INBUFFERCOUNT>=6 '查询方式,等待收到6个字节
DOEVENTS
LOOP
DATTEMP=MSCOMM1.INPUT '从串口读取数据至变体变量
RCVDAT=DATTEMP '数据送至接收二进制数组
TXTRCV.TEXT=""
FOR I=0 TO 5 '接收数据送至接收文本框TXTRCV显示
TXTRCV.TEXT=TXTRCV.TEXT&RIGHT("0"&HEX(RCVDAT(I)),2)
NEXT I
MSCOMM1.PORTOPEN=FALSE '关闭串行口
CMDCOMM.ENABLED=TRUE '使能CMDCOMM按钮
END SUB
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询