发 帖  
原厂入驻New
请问串口通信发送回来的数据多了该怎么办?
125 串口通信 代码
分享
请问各位大神,
下面这个代码进行串口通信
我一直发送的都是数据0x01。
每次单片机发回的值都应该是 (序号 01)。
但是到第十次发送的时候,发送的是(0D 0A 01)呢?
//1.以2400bps从计算机发送任一字节数据,
//当单片机收到该数据后,
//在此数据前加上一序号然后连同此数据一起发送至计算机,
//当序号超过255时归零。
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
uchar a,flat,num;
void init()
{
        TMOD=0X20;
        TH1=0xf4;  //2400波特率对应定时器1初值
        TL1=0xf4;        
        TR1=1;
        SM0=0;
        SM1=1;
        REN=1;
        EA=1;
        ES=1;
}
void main()
{
        init();
        while(1)
        {
                IF(flat==1)
                {
                        flat=0;
                        ti=1;
                        num++;
                        printf("%c",num);
                        while(!TI);
                        TI=0;
                        TI=1;
                        printf("%c",a);
                        while(!TI);                        
                        TI=0;
                        ES=1;
                }
        }
}
void ser() interrupt 4
{
        ES=0;               
        RI=0;         
        a=SBUF;                 
        flat=1;
}
0
2019-11-5 21:28:49   评论 分享淘帖 邀请回答

相关问题

2个回答
下面这个是答案给的代码,就没这个毛病。为什么呢?
#include<reg52.h>
unsigned char flag,a,num,num1;
sbit beep=P2^3;
void main()
{
        TMOD=0x20;//设置定时器1为工作方式2
        TH1=0xf4;
        TL1=0xf4;
        TR1=1;
        SM0=0;
        SM1=1;
        REN=1;
        EA=1;
        ES=1;
        while(1)
        {
                if(flag==1)
                {
                        ES=0;
                        flag=0;
                        num1++;
                        if(num1==255)
                                num1=0;
                        SBUF=num1;
                        while(!TI);
                        TI=0;
                        SBUF=a;
                        while(!TI);
                        TI=0;
                        ES=1;
                }
        }
}
void ser() interrupt 4
{
        RI=0;
        a=SBUF;
        flag=1;
}
2019-11-6 08:58:31 评论

举报

这个问题没解决呢。。。
2019-11-6 09:15:40 评论

举报

只有小组成员才能发言,加入小组>>

886个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表