导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→高手指点一下,上位机为何收不到数据?[fjddxx]

 *第10989篇: 高手指点一下,上位机为何收不到数据?

  
楼 主:fjddxx 2003年4月25日10:45
 高手指点一下,上位机为何收不到数据?
下位机部分:(ADuC824是51内核)
#include   <ADuC824.h>  
sbit P3_4=P3^4;

#define Uchar unsigned char
#define Uint unsigned int
Uint i;
void main(void)
{

Uchar k = '5';

TMOD=0x20;                   /*8wei changshu zidong zhuangzai  dinshi qi*/
TH1=0xfd;        /*11.0592MHZ*/
PCON=0x00;                     /*botelv:SMOD=0  */
TR1=1;                          /*qidong jishu*/
SCON=0x52; 
P3_4=1;                /*信号灯*/    
ES=1;                            /*chuankou kai zhongduan*/
EA=1;                              /*cpu kai zhongduan */

SBUF=k;
while(1){}; 

}                                  


void ssio(void) interrupt 4 using 1
{
Uchar a;
Uchar b;
a='5';

P3_4=0;
TI=0;
RI=0;
ES=0;
b=SBUF;   /*关串口中断*/
for(i=0;i  <10000;i++){}
P3_4=1;  
ES=1;

}      


上位机部分:(VB)
Private Sub Command1_Click()
Dim b As String

   MSComm1.PortOpen = True
      b = MSComm1.Input
     Text1.Text = CStr(b)
   MSComm1.PortOpen = False
End Sub

Private Sub Command2_Click()
   Dim c As String
   
   MSComm1.PortOpen = True
  c = Text1.Text
 MSComm1.Output = c
   MSComm1.PortOpen = False

End Sub

Private Sub MSComm1_OnComm()
   MSComm1.CommPort = 1
   ' 9600 波特,无奇偶校验,8 位数据,一个停止位。
   MSComm1.Settings = "9600,N,8,1"
   ' 当输入占用时,
   ' 告诉控件读入整个缓冲区。
   MSComm1.InputLen = 0
   ' 打开端口。
   MSComm1.InBufferCount = 0 '数据传输区清零
   MSComm1.OutBufferCount = 0 '数据传输区清零

End Sub
                          

  
2楼:guest 2003年4月25日11:38
 试试
只有MSComm1.PortOpen = True.上位机才接收数据,一般的做法是一启动程序就打开串口,程序结束时关闭串口.

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:有源晶振的内部电路????

[下一篇主题]:[求助]请问谁能推荐一个压降小于0.2的三极管?