72

帖子

0

TA的资源

一粒金砂(初级)

21
 
十七楼说的有一定道理,在主程序中可以去掉while (TI==1) {;}TI=0;

但是中断函数不可没有,你可以自己调试一下,没有中断函数传送数据会不正确。

这就是单片机的奇妙之处。

回复

64

帖子

0

TA的资源

一粒金砂(初级)

22
 
UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

23
 
呵呵。很不幸,我试过了。。。发送数据不需要中断没问题的。。我这有块开发板。。。。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

24
 
纠正一下,是不需要中断函数,中断那个是硬件自己置位的,我们管不了。。。。呵呵。。
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

25
 
楼上用的什么软件KEIL?
在单片机中的一个优点是我们可以直接通过设置中断标志位而进入中断,串口中断需要软件清零。
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

26
 
学习一下。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

27
 
while (TI==1);这一行代码有问题,应改为while (TI==0);

 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

28
 
void senddata(uchar *buffer,uchar length)
{
  uchar i;
  for(i=0;i   {
  SBUF=buffer;
  while (TI==1);
  TI=0;
   
  }   
}

完全是错的,没有理解 TI是怎么变化的啊



void SIO_SendStringWait(const char* pString)
{
    ES = 0;  //关串口中断
    TI = 0;  //清零串口发送完成中断请求标志
        while( (*pString) )
    {
                SBUF = (*pString);
                while( !TI );  //等待发送完成
                TI = 0;  //清零串口发送完成中断请求标志
                pString ++;
        }
    ES = 1;  //允许串口中断
}

你整一套我的软件,慢慢研究吧

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4023698&bbs_id=9999
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

29
 
我没有用中断的,一直for循环发送,起初也会数据丢失
后来加了小延时~~就ok了,
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表