串口的发送中断位(TI)问题

[复制链接]
 楼主| zfeng919 发表于 2007-12-18 20:51 | 显示全部楼层 |阅读模式
void main()
{
    uint8 i;
    while(1)
    {    
        for(i=0;i<5;i++)
        {
            SBUF=date;
            while(TI==0);
            TI=0;
            Delay(500);
        }
    }    
}
在上面的程序中
如果去掉 while(TI==0)这条语句
和不去这条语句
在仿真的时候怎么效果是一样的????????????
hotpower 发表于 2007-12-18 20:53 | 显示全部楼层

Delay(500);

 楼主| zfeng919 发表于 2007-12-18 21:10 | 显示全部楼层

2楼那位大哥,那是啥意思啊?

mohanwei 发表于 2007-12-18 21:25 | 显示全部楼层

应该是你的Delay(500);足够发一个字符了

 楼主| zfeng919 发表于 2007-12-18 21:42 | 显示全部楼层

回4楼

那怎么才能区分是这个问题呢?
如果把delay(500)的时间给短
会显示的太快,区分不了
m_m 发表于 2007-12-18 22:54 | 显示全部楼层

没必要用 Delay(500); 啦

infree 发表于 2007-12-19 09:09 | 显示全部楼层

你也没有对串口初始化呵

工作不会正常吧!
另外好像仿真时是不能控制TI置位的,我在仿真时都是在发送前自己置位TI,然后使用printf输出信息。
mohanwei 发表于 2007-12-19 10:51 | 显示全部楼层

一开始没注意到7楼提出的问题……

楼主的确没有对串口初始化……所以只能用来仿真……

建议楼主打开Keil自带的例程“Hello,World!”看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

35

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

8

主题

35

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部