这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » 关于串口通信的问题

共2条 1/1 1 跳转至

关于串口通信的问题

菜鸟
2007-11-15 15:17:22     打赏
#include <reg52.h>  
#define   uc   unsigned   char  
#define   ui   unsigned   int  

uc   snum,flag;  
ui   num;  

void   main()  
{  
        TMOD=0x20;  
        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;  
                        SBUF=num;  
                        while(!TI);//这句话的作用  
                            TI=0;  
                        SBUF=snum;  
                        while(!TI);  
                        TI=0;  
                        if(num <256)  
                        {  
                                num++;  
                        }  
                        else  
                        {  
                                num=0;  
                        }  
                        ES=1;  
                }  
        }  
}  

void   serial()   interrupt   4  
{  
        snum=SBUF;  
        flag=1;  
        RI=0;  
}  

说明一下,变量num是每次发送的序列号,到255自动归0,有两个问题  
1.已经注释,就是while(!TI)这句话的作用。。。  
2.我用的串口调试助手v2.1,如果要发回上位机的话,如何以10进制而不是16进制显示呢?????



关键词: 关于     串口     通信     问题    

菜鸟
2007-11-15 15:23:56     打赏
2楼
这样啊,可是还是有些不明白,如果没有while(!TI);这句话的话,为什么一直不断的会往上位机发sbuf的数据呢。。。我明明只写了一句subf=num,这点很不明白?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]