微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 中断方式下进行串口通讯的正确方法

中断方式下进行串口通讯的正确方法

时间:11-30 来源:互联网 点击:

断程序在应用中合并在一起,即:

void uart_init(void) interrupt 4 {

if (TI){

TI = 0;

…;

}

if (RI){

RI = 0;

…;

}

}

例程中分开表述,只是为了将流程说得更明白些。

上述例程中,未包含环形收发缓冲区溢出状况的处理,需要时自行添加。

上述例程表明了正确使用中断方式处理串口通讯的思路。当然程序还可以有其它的写法,特别是环形缓冲区中数据出入的方法和信号量的用法。如在有操作系统的情况下,上述信号量的使用就可以得到操作系统更好支持。

完全中断方式收发数据总结:

1。数据的收发操作,完全由中断程序自动进行,可以达到最快的收发速度。即,接收时中断程序负责把数据放入缓冲区,数据的处理由应用程序另行处理;发送时应用程序直接将数据放入缓冲区,启动发送中断后,发送的工作由中断程序自动完成。

2。由于发送的工作完全由中断处理,因此,应用程序将数据放入缓冲区后,就可以继续运行其它工作,这种“发了不管”的方式极大地提高程序运行效率。

3。接收数据时,由中断负责将数据放入缓冲区,再由应用程序处理。应用程序轮询及处理的时间长短,不会影响接收,就不会导致数据丢失。

4。由于应用程序中不出现开关中断的操作,因此,发送和接收互不影响,可以达到全双工收发的效果。

期望上述文字能给予大家借鉴,如有差错,望予指正,谢谢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top