打印
[STC单片机]

串口中断小问题

[复制链接]
1481|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
puppet21|  楼主 | 2013-10-24 16:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
main()
{    ....
     P1 = 0XF0;
     ....
}

void dataset_int4() interrupt 4
{
        char receivein ;
        P1 = 0X05 ;
            if(RI)
         {....
         }
}
当程序是这样时,P1口开机马上显示的是0x05;
void dataset_int4() interrupt 4
{
        char receivein ;
            if(RI)
         {P1 = 0X05 ;
           ....
         }
}
这样后,开机才是P1 口 是0x55

各位看官有没明白?谁能告诉我这是为什么?开机串口中断马上触发了?虽然是空值,但这不太正常啊!求解!!

相关帖子

沙发
ayb_ice| | 2013-10-24 17:19 | 只看该作者
开机一般都要延时20~50MS,等待硬件稳定,开中断前一般都要清除标志位

void main(void)
{
        delay_20ms();
        
        RI = TI = 0;
        ES = 1;
        EA = 1;
        
        while(1)
        {
                ...
        }

}

使用特权

评论回复
板凳
NE5532| | 2013-10-24 19:47 | 只看该作者
看不明白,楼主自己明白不?通篇找不到0x55在哪里。

另外开中断之前需要清标志。

使用特权

评论回复
地板
puppet21|  楼主 | 2013-10-25 08:56 | 只看该作者
NE5532 发表于 2013-10-24 19:47
看不明白,楼主自己明白不?通篇找不到0x55在哪里。

另外开中断之前需要清标志。 ...

嘿嘿~后来为了避免视觉误差,改为0xf0了,在main里面唯一的代码

使用特权

评论回复
5
puppet21|  楼主 | 2013-10-25 08:59 | 只看该作者
ayb_ice 发表于 2013-10-24 17:19
开机一般都要延时20~50MS,等待硬件稳定,开中断前一般都要清除标志位

void main(void)

都是有的,没贴出来而已,延时用了1秒。

后来问题解决了,我原先用的烧写器代替串口,烧写器在上电后就发送了握手的的指令,这因为如此才会执行了串口中断,后来直接插串口问题就不再出现了~谢谢各位啦!

使用特权

评论回复
6
NE5532| | 2013-10-25 10:17 | 只看该作者
看来问题还是你自己没有清标志。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

140

帖子

0

粉丝