永发信息网

串口通信与定时器0的冲突?

答案:1  悬赏:20  手机版
解决时间 2021-04-26 14:36
  • 提问者网友:夢醒日落
  • 2021-04-25 20:33
串口通信收发与定时器0的冲突?

void init()
{
 TMOD=0x20;
 TH1=0xfd;
 TL1=0xfd;
 TR1=1;
 REN=1;
 SM0=0;
 SM1=1;
 ES=1;
 TMOD=0x01;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 EA=1;
 ET0=1;
 TR0=1;
 rw=0;
 en=0;
 write_com(0x38);
 write_com(0x01);
 write_com(0x06);
 write_com(0x0c);
 write_com(0x80);
 for(num=0;num<15;num++)
 {
  write_date(table[num]);
  delay(5);
 }
 write_com(0x80+0x44);
 for(num=0;num<8;num++)
 {
  write_date(table1[num]);
  delay(5);
 }
}

 

怎么加定时器0下去就无法达到想要的效果,它就怎么会一直进入串口中断????

最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-04-25 20:47

单片机中断有优先级,如果高优先级的和低优先级的同时出现执行高的,你可以查查看看我记不清了。好像串口通讯的时序本身就是靠一个定时器控制的。所以串口通讯开启的话那个定时器好像不工作。你再查下手册看看,或者换成定时器1看看。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯