打印
[51单片机]

51单片机串口通信

[复制链接]
1139|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我想用串口接收一组数组程序这样写  运行不对是什么情况
#include <reg52.h>
#include<stdlib.h>
#define uint unsigned int
#define uchar unsigned char
//定义接收 数组
uchar Buffer[6],OK[]="ok";
uint temp_ser[5];
uchar flag_ser=0,i=0,j=0,k,re=0;

//串口初始化函数
void   serial_init( )
{
         TMOD=0x20;
         SCON=0x50;
         EA=1;
         ES=1;
         TR1=1;
         TH1=0xfd;
         TL1=0xfd;
}
//中断函数
void receive() interrupt 4
{
         if(RI)
         {
                Buffer[i]=SBUF;
                RI=0;
         }
         i++;

         if(Buffer[i]=='@')
         {
                 re=1;
                Buffer[i]=0;
         }

         if(re==1)
         {       
                temp_ser[j++]=atoi(Buffer);
                re=0;
                i=0;
         }

         if(j==6)
        {
                j=0;
                flag_ser=1;
        }
         
}
//主函数
void  main()
{
        serial_init( );
        while(1)
        {
                if(flag_ser==1)
                {
                        P2=temp_ser[0];
                        SBUF=OK[k];
                        while(!TI)
                        TI=0;
                        flag_ser=0;
                }       
        }
}

相关帖子

沙发
睡神耗子| | 2014-5-6 10:50 | 只看该作者
不理解程序的作用。注释太少,看不懂

使用特权

评论回复
板凳
ballack_linux| | 2014-5-6 14:35 | 只看该作者
运行不对?具体一点

使用特权

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

本版积分规则

9

主题

15

帖子

0

粉丝