打印

vb串口,奇怪的问题,很奇怪哦,(附代码。

[复制链接]
1854|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liyoujun|  楼主 | 2010-5-19 09:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是stc89c52的单片机
自己用vb做一个发送数据的程序,单片机接收。
我想要的结果是:vb发200过来,单片机用全局变量comflag记录下来
然后等待1秒,vb再发0-3的某个数字,单片机先判断comflag的值,如果是200则
将第二次收到的数字赋给全局变量n

现在很奇怪的是,用串口调试助手,这个没问题,可是,用我自己写的vb程序就不行,但奇怪的是,vb发的数,单片机全能收到,,,,就是不进入下面的判断,,,,

vb代码:
Private Sub Command1_Click()

'...发送数据
If MSComm1.PortOpen = False Then
MsgBox ("串口没有打开!")
Else

Dim Num As Integer
Dim outbte(0) As Byte
Num = Val(200)
outbte(0) = CByte(Num)
'----------发送识别码------------------
MSComm1.OutBufferCount = 0 '...清空输出寄存器
    Dim ByteArray() As Byte
    '定义动态数组
    ReDim ByteArray(1)
    '重定义数组大小
    ByteArray(0) = 0
    ByteArray(1) = CByte(Num)
    MSComm1.Output = ByteArray
    Sleep 1000 '............延时50ms
'-----------发送器件编码---------------
MSComm1.OutBufferCount = 0 '...清空输出寄存器
   
    '定义动态数组
    ReDim ByteArray(1)
    '重定义数组大小
    ByteArray(0) = 0
    Num = Val(Text5.Text)
    ByteArray(1) = CByte(Num)
    MSComm1.Output = ByteArray
'MSComm1.Output = &H0 '...发送数据
End If
End Sub

单片机代码:

#include<reg52.h>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
int n=0,TH,TL;
void send_char(uchar txd)     //串口传出一// 传送一个字符
{
ES=0;
SBUF = txd;
while(!TI);    // 等特数据传送
TI = 0;
ES=1;     // 清除数据传送标志
}
void main()
{
TMOD = 0x20;// 定时器1工作于8位自动重载模式, 用于产生波特率
TH1 = 0xFD; // 波特率9600
TL1 = 0xFD;
   SCON = 0x50; // 设定串行口工作方式
PCON = 0x00;
EA=1;
ES=1;
TR1 = 1;        // 启动定时器1
    while(1)
{
  P2=n;
}
}
/////////////////串行口中断///////////////////////////////////
void fun_Uart() interrupt 4 using 1
{
int receive;
static int comflag;
ES=0;
while(RI==0);        //读串口数据
RI=0;
receive=SBUF;
P1=SBUF;

if(receive>=200)
comflag=receive;

else
{
   // P0=receive;
if(comflag==200)
{
  n=receive;
  comflag=0;
}
/* if(comflag==201)
{
  TH=SBUF;
  P1=TH;
  comflag=0;
}
if(comflag==202)
{
  TL=SBUF;
  P1=TL;
  comflag=0;
}*/
}
  ES=1;
}

相关帖子

沙发
liyoujun|  楼主 | 2010-5-19 14:38 | 只看该作者
疯了,怎么没有人讲话呢?各位大侠,求救了,,,

使用特权

评论回复
板凳
liyoujun|  楼主 | 2010-5-19 19:45 | 只看该作者
那位高手给看看吧,,,太纠结了,太灵异了,,,

使用特权

评论回复
地板
liyoujun|  楼主 | 2010-5-20 10:36 | 只看该作者
晕了,求大侠指点,,

使用特权

评论回复
5
liyoujun|  楼主 | 2010-5-21 12:55 | 只看该作者
晕死,全是我自己的留言,,,,,

使用特权

评论回复
6
liyoujun|  楼主 | 2010-5-23 09:37 | 只看该作者
还没有人出来讲话么?哎,自娱自乐了,,,,

使用特权

评论回复
7
liyoujun|  楼主 | 2010-5-25 18:42 | 只看该作者
啦啦啦,无聊一下,,准备封贴,,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

1

粉丝