导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]串口发送TI到底怎么设置[kanlingling]

 *第35412篇: [求助]串口发送TI到底怎么设置

  
楼 主:kanlingling 2005年11月1日10:50
 [求助]串口发送TI到底怎么设置
有两段程序,都是发送,为什么TI一个设0一个设1,(二)中while(TI==0);什么作用
(一)
#include   <AT89X51.h>  
#include  <stdio.h>  
void main(void)
{
  SCON=0x50;
  TMOD=0x20;
  TH1=0xE8;
  TL1=0xE8;
  TI=1;
  TR1=1;
   while(1)
   { 
   printf("hello word\n");
   }
}
(二)
#include   <reg52.h>  
#define BYTE unsigned char
#define WORD unsigned int
BYTE idata txdata[7]={"HELLO\n"};
void main()
{
 BYTE i;
 WORD j;
 TMOD=0x20;
 TL1=0xfd;
 TH1=0xfd;
 SCON=0xd8;
 PCON=0x00;
 TR1=1;
 while(1)
 {
  i=0;
  while (txdata[i]!=0x00)
   {
    SBUF=txdata[i];
    while(TI==0);
    TI=0;
    i++;
    }
   for(j=0;j  <60000;j++);
   }
}

  
2楼:huzimax 2005年11月1日12:50
 发送完毕后,TI会被置1,如果开启了中断,会产生中断,清0即可
1的用法可能是想初始化完成后,执行一次中断程序;
2的用法比较正常.
  
3楼:kanlingling 2005年11月1日14:25
 可是(一)中去掉  TI=1;就不输出了
  
4楼:虚子心 2005年11月4日13:31
 看看库函数PUTCHAR.C就知道为什么
看看库函数PUTCHAR.C就知道为什么在(一)中需要置位TI了.

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

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


[上一篇主题]:谁有K9F2808的资料,有的发一份给我好么?

[下一篇主题]:KENDIN ;;;;ARM9开发板,仅售550,金浪出品~