首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

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

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

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


#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 有看门狗么? 没喂狗,程序在返回复位中 ?

热点排行