51单片机实现通讯协议的串口通讯编程 单片机 .docxVIP

  • 31
  • 0
  • 约1.97千字
  • 约 5页
  • 2021-07-30 发布于湖南
  • 举报

51单片机实现通讯协议的串口通讯编程 单片机 .docx

PAGE PAGE 1 51单片机实现通讯协议的串口通讯编程 - 单片机 我们以51单片机为例。51中一般针对串口通讯编程,通常实行中断接受查询发送的方式。中断函数在接受数据到达时被重复调用,其实是个重复入栈的过程,所以不宜将函数写的太长,函数太长一般会导致栈太深占用系统资源,二是处理时间过长,可能导致通讯出错。为了防止在处理数据过程中不受干扰,通常在处理接受数据前关闭中断,处理完后再开。 通常的的编程方式如下: STatic void UartInterruptService(void) interrupt 4 { ES = 0; RI = 0; uart_process(SBUF); ES=1; } 下面重点介绍数据处理函数 uart_process(SBUF); 其实很多时候,对于通讯传输的数据处理才是关键,尤其对于设计通讯协议而言。笔者在刚刚做的一个系统上就遇到这样的问题,当系统浩大了,资源格外有限的状况下,数据处理一旦占用资源太多,效率太低将导致系统崩溃而无法运行。 到了这里,很多工程师可能会考虑开个大的缓冲区FIFO将接收到的数据保存在缓冲区,然后对其进行解析、推断进行下一步程序编写,当然这在系统资源比较丰富的状况下是没有问题的,ARM上实行的就是这样的方式。但如何系统浩大呢,留给的

文档评论(0)

1亿VIP精品文档

相关文档