__delay_ms函数会对影响到定时器中断么
TXB0CONbits.TXREQ = 1; //置1,则开始发送
while(TXB0CONbits.TXREQ);//等待其发送完毕,问题在于,如果总线上其他设备都已关闭,则会发送失败,在此处死循环
问题如上,在此处,如果不添加后面一句,那么在下一次用发送缓冲区0时,就会无法发送。但如果添加上此句,那么我关闭上位机时,就会在此处死循环。
我知道有错误中断,我自己试了几次,却各种不成功。
后来使用__delay_ms函数,
while(1) {
if (!TXB0CONbits.TXREQ) break;//发送完毕,退出
__delay_m(1);//延时1ms
n++;
if (n>=5) break;//超时,退出。
}
但是我有一个疑问,就是如果我使用这个函数,是否会影响到定时器中断,使之在此1ms中无法中断。