ECBM函数库V3学习笔记③-UART1超时判断接收完成

 UART1超时判断接收完成,当超过6ms没有数据进入串口则认为接收数据完成,下一步可以处理数据。本例把接收到的数据原样返回给UART1.

 

 

 

 源码

#include "ecbm_core.h"  //加载库函数的头文件。
#define	TimeOutSet		3
#define	COM_RX1_Lenth	100 
u8 RECED_FLAG=0;
u8 RX_TimeOut=0;
u8 RX_Cnt=0;
u8 rcv_buff[COM_RX1_Lenth];//接收缓存
u8 i;
void main(void){        //main函数,必须的。
    system_init();      //系统初始化函数,也是必须的。
// 	  gpio_mode(D21,GPIO_OUT);
	  timer_init();//先初始化定时器。
		timer_set_timer_mode(0,20000);//timer0定时2ms
		timer_start(0);//再打开定时器0。
		
    while(1)
		{
       if(RX_TimeOut==0)  
		   {
				 if(RX_Cnt > 0)
				{
					for(i=0; i<RX_Cnt; i++)	uart_char(1,rcv_buff[i]);	//收到的数据原样返回
				} 
				RX_Cnt=0;
				RX_TimeOut=TimeOutSet;
       }
 	}
}

void uart1_receive_callback()
{
		if(RX_Cnt >= COM_RX1_Lenth)	RX_Cnt = 0;
		rcv_buff[RX_Cnt++] = SBUF;//收到数据存入缓冲区
	  RX_TimeOut = TimeOutSet;
		
}
void   timer0_it_callback()
{
	if(RX_TimeOut > 0) RX_TimeOut--;
}

效果如图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

armcsdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值