先给你一个概念,任何中断函数,都要求快进快出。执行时间尽可能少,比较费时的计算,就拿到主函数里面。
再来回答你的问题.
允许定时器中断,但是不写定时器中断服务函数,不对导致单片机程序跑飞程序吗?
我们极端假设下,当程序已经执行完成SBUF = c;语句后,程序立即跳转到定时器中断,假设定时器中断执行非常长,
那么串口上,这个C字节还是可以完整的发出去,但是后面的自己就发布出去了。
所以,串口上不会有乱码,但是会出现本来一个数据帧,会被分成了几个数据帧的情况。
看你这个程序,中断处理函数里面没有清除中断标志,应该会导致卡死在中断里面
如果使能了中断,没有中断处理函数,首先在某些平台上,会导致程序跳到一个不可执行的内存地址,导致程序卡死,此外,中断处理函数必须要执行清除中断标志位的动作,所以没有处理函数,程序会一直进中断