2.UART串口入门——自己对于void Uart_Proc(void)做题经验

以2019第十届国赛题目为例

这一部分赏析蚂蚁科技的代码

Windows下在txt文件中敲下回车键,然后16进制观察,你会发现获得了2个字符,0x0d和0x0a

回车='\r''\n'=0x0d+0x0a

if((uart_buf[uart_buf_index-1] == 0x0a)&&(uart_buf[uart_buf_index-2] == 0x0d))//拿到的数据帧的倒数后两位为帧尾,表示收到一个数据帧
	{
		if((uart_buf_index == 4)&&(uart_buf[0]=='S')&&(uart_buf[1]=='T'))//收到第一种指令ST
		{
			sprintf(uart_send_data_string,"$%02d,%5.2f\r\n",(unsigned int)juli_xianshi,wendu_xianshi);
		}
		else if ((uart_buf_index == 6)&&(uart_buf[0]=='P')&&(uart_buf[1]=='A')&&(uart_buf[2]=='R')&&(uart_buf[3]=='A'))//收到第二种指令PARA
		{
			sprintf(uart_send_data_string,"#%02d,%02d\r\n",(unsigned int)juli_canshu_xianshi,(unsigned int)wendu_canshu_xianshi);		
		}
		else//其他情况
		{
			sprintf(uart_send_data_string,"ERROR\r\n");			
		}
		Uart_Send_String(uart_send_data_string);//自动寻找最后一个位置为\0地方,控制发送结束
		uart_buf_index = 0;
		
	}
	else if(uart_buf_index > 6)//表示一直没有收到想要的数据帧
	{
		sprintf(uart_send_data_string,"ERROR\r\n");		
		Uart_Send_String(uart_send_data_string);//自动寻找最后一个位置为\0地方,控制发送结束
		uart_buf_index = 0;		
	}	

实际烧录软件中操作为:

首先清空接收区,再输入ST后,按下回车键。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值