欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

单片机串口接串口助手 小弟我只想发送一个字符 结果一按复位发了很长一串 都是同一个字符 代码如下

更新时间: 2014-01-05 03:15:07 责任编辑: Author_N1

 

单片机串口接串口助手 我只想发送一个字符 结果一按复位发了很长一串 都是同一个字符 代码如下

#include<reg52.h>
void init()//初始化参数
{     
    //定时、串口初始化   
    TMOD=0x20;//T1工作于方式2自动重装    
    TH1=0xff;    
   TH0=0xff;//波特率为57600晶振为11.0592M    
   TR1=1;//启动T1    
   SM0=0;    
   SM1=1;//工作方式1    
   PCON=0X80;//波特率翻倍    
    REN=1;//允许串口接收    
    EA=1;//开总中断    
    ES=1;//开串口中断
}
void main()
{    
    init();    
    ES=0;    
    SBUF=0x31;    
    while(!TI)    
    TI=0;    
    ES=1;

经询问说main函数中改为
void main() 

    init(); 
    ES=0; 
    SBUF=0x31; 
    while(!TI) 
    TI=0;
    while(1)
    {
    }
}  
经验证,成功了 但是不明白删除ES=1和增加while(1)两个条件的原因 求讲解
--参考方法--
ES=1那个不是什么很致命的问题
关键是那个while(1),因为单片机没有关机指令,所以必须要一个死循环,否则PC指针一直向下走然后单片机就疯了
--参考方法--
while(1)是单片机很重要的语句啊。。没有的话不行的
--参考方法--
1 ES=1 开中断了 但是没有中断服务程序, 程序可能跑飞了
2 有看门狗么? 没喂狗,程序在返回复位中 ?
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:15:07
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20114/
本文WWW.DOC100.NET DOC100.NET版权所有。