计算机接收串行数据后存储,51串口如何把接收数据存到数组,再把数组的数据发到电脑?...

#include         //  包含51单片机寄存器定义的头文件

#define uchar unsigned  char

#define uint unsigned int

uchar k=0;                //以k做为判断是否接收到数据的依据

uchar c;      //记录接收到多少个字节的数据

uchar receive[12]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};

void delay1ms(uint i)

{

unsigned char j;

while(i--)

{for(j=0;j<114;j++) //基准延时程序

{;}

}

}

void send_char(unsigned char txd)   // 传送一个字符

{

SBUF = txd;

while(!ti);                                // 等特数据传送

TI = 0;                                        // 清除数据传送标志

}

void fasong(){                        //发送数组receive[];

uchar i;

for(i=0;i

send_char(receive);

}

}

void panduan_k(){                                //判断k,若为0,说明开始接收数据

if(k!=0){

delay1ms(1);                                        //延迟1ms,等待把数据接收完

k=0;

fasong();

}

}

main()

{

uchar i;

uchar j=0;

uchar receive[12]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};

SCON= 0x40;                //串口方式1

PCON=0;                     //SMOD=0

REN=1;                     //允许接收

TMOD= 0x20;                //定时器1定时方式2

TH1= 0xfd;                //11.0592M 9600波特率

TL1= 0xfd;

TR1= 1;                  //启动定时器

while(1)

{ panduan_k();

}

}

void ser()interrupt 4

{          if(RI==1){

RI=0;

receive[k++]=SBUF;                                //存数据到接收缓存

c=k;

}

}

怎么无论是发什么数据,电脑串口都没有接收到任何的单片机的回复呢?

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值