This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

串口与定时器冲突吗?



我今天写了一段程序主要是模拟串口发送数据,同时开启了自身的串口接收。开始我模拟串口数据发送周期用的是IAR自身带的延时函数,但是发现在串口快速接收数据的时候,自身的延时函数会不准确,导致这个问题的原因我明白,于是我就改成了Time定时延迟,现在模拟串口发送数据的周期很准确,但是我发现如果串口现在连续接收数据的话,就开始丢数据了。 于是我把TimeB中断中添加了_EINT();中断嵌套,还是丢失数据,偶尔丢失1或者2个字节的,不是每次都丢失。

我不明白是为什么?求解答

我怀疑是不是单片机串口接收数据太快的时候,很容易导致单片机在进入TImeB中断的时候或者退出TimeB中断的时候,丢失了数据,不是说在进入中断的时候需要8-16个时钟周期,在退出中断的时候需要6个时钟周期吗? 但是这个时间太短了, 求解答。