中断方式下进行串口通讯的正确方法
时间:11-30
来源:互联网
点击:
断程序在应用中合并在一起,即:
void uart_init(void) interrupt 4 {
if (TI){
TI = 0;
…;
}
if (RI){
RI = 0;
…;
}
}
例程中分开表述,只是为了将流程说得更明白些。
上述例程中,未包含环形收发缓冲区溢出状况的处理,需要时自行添加。
上述例程表明了正确使用中断方式处理串口通讯的思路。当然程序还可以有其它的写法,特别是环形缓冲区中数据出入的方法和信号量的用法。如在有操作系统的情况下,上述信号量的使用就可以得到操作系统更好支持。
完全中断方式收发数据总结:
1。数据的收发操作,完全由中断程序自动进行,可以达到最快的收发速度。即,接收时中断程序负责把数据放入缓冲区,数据的处理由应用程序另行处理;发送时应用程序直接将数据放入缓冲区,启动发送中断后,发送的工作由中断程序自动完成。
2。由于发送的工作完全由中断处理,因此,应用程序将数据放入缓冲区后,就可以继续运行其它工作,这种“发了不管”的方式极大地提高程序运行效率。
3。接收数据时,由中断负责将数据放入缓冲区,再由应用程序处理。应用程序轮询及处理的时间长短,不会影响接收,就不会导致数据丢失。
4。由于应用程序中不出现开关中断的操作,因此,发送和接收互不影响,可以达到全双工收发的效果。
期望上述文字能给予大家借鉴,如有差错,望予指正,谢谢。
中断方式串口通 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)